home *** CD-ROM | disk | FTP | other *** search
/ BBS in a Box 15 / BBS in a box XV-2.iso / Files II / Prog / M / MacPerl 4.13 tool.sit / Perl Tool ƒ / lib / perldb.pl < prev    next >
MacBinary  |  1993-10-23  |  16.5 KB  |  [TEXT/MPS ]

open in: MacOS 8.1     |     Win98     |     DOS

view JSON data     |     view as text

This file was processed as: MacBinary (archive/macBinary).

You can browse this item here: perldb.pl

ConfidenceProgramDetectionMatch TypeSupport
10% dexvert MacBinary (archive/macBinary) fallback Supported
1% dexvert Claris Works palette files (other/clarisWorksPaletteFiles) ext Unsupported
1% dexvert Text File (text/txt) fallback Supported
100% file MacBinary II, inited, Sat Oct 23 01:19:16 1993, modified Sat Oct 23 01:19:16 1993, creator 'MPS ', type ASCII, 16167 bytes "perldb.pl" , at 0x3fa7 428 bytes resource default (weak)
99% file data default
74% TrID Macintosh plain text (MacBinary) default
25% TrID MacBinary 2 default (weak)
100% siegfried fmt/1762 MacBinary (II) default
100% lsar MacBinary default


id metadata
keyvalue
macFileType[TEXT]
macFileCreator[MPS ]



hex view
+--------+-------------------------+-------------------------+--------+--------+
|00000000| 00 09 70 65 72 6c 64 62 | 2e 70 6c 00 00 00 00 00 |..perldb|.pl.....|
|00000010| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000020| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000030| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000040| 00 54 45 58 54 4d 50 53 | 20 01 00 00 00 00 00 00 |.TEXTMPS| .......|
|00000050| 00 00 00 00 00 3f 27 00 | 00 01 ac a8 ee 6f 54 a8 |.....?'.|.....oT.|
|00000060| ee 6f 54 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |.oT.....|........|
|00000070| 00 00 00 00 00 00 00 00 | 00 00 81 81 fc 54 00 00 |........|.....T..|
|00000080| 70 61 63 6b 61 67 65 20 | 44 42 3b 0d 0d 23 20 6d |package |DB;..# m|
|00000090| 6f 64 69 66 69 65 64 20 | 50 65 72 6c 20 64 65 62 |odified |Perl deb|
|000000a0| 75 67 67 65 72 2c 20 74 | 6f 20 62 65 20 72 75 6e |ugger, t|o be run|
|000000b0| 20 66 72 6f 6d 20 45 6d | 61 63 73 20 69 6e 20 70 | from Em|acs in p|
|000000c0| 65 72 6c 64 62 2d 6d 6f | 64 65 0d 23 20 52 61 79 |erldb-mo|de.# Ray|
|000000d0| 20 4c 69 73 63 68 6e 65 | 72 20 28 75 75 6e 65 74 | Lischne|r (uunet|
|000000e0| 21 6d 6e 74 67 66 78 21 | 6c 69 73 63 68 29 20 61 |!mntgfx!|lisch) a|
|000000f0| 73 20 6f 66 20 35 20 4e | 6f 76 20 31 39 39 30 0d |s of 5 N|ov 1990.|
|00000100| 23 20 4a 6f 68 61 6e 20 | 56 72 6f 6d 61 6e 73 20 |# Johan |Vromans |
|00000110| 2d 2d 20 75 70 67 72 61 | 64 65 20 74 6f 20 34 2e |-- upgra|de to 4.|
|00000120| 30 20 70 6c 20 31 30 0d | 0d 24 68 65 61 64 65 72 |0 pl 10.|.$header|
|00000130| 20 3d 20 27 24 52 43 53 | 66 69 6c 65 3a 20 70 65 | = '$RCS|file: pe|
|00000140| 72 6c 64 62 2e 70 6c 2c | 76 20 24 24 52 65 76 69 |rldb.pl,|v $$Revi|
|00000150| 73 69 6f 6e 3a 20 34 2e | 30 2e 31 2e 33 20 24 24 |sion: 4.|0.1.3 $$|
|00000160| 44 61 74 65 3a 20 39 32 | 2f 30 36 2f 30 38 20 31 |Date: 92|/06/08 1|
|00000170| 33 3a 34 33 3a 35 37 20 | 24 27 3b 0d 23 0d 23 20 |3:43:57 |$';.#.# |
|00000180| 54 68 69 73 20 66 69 6c | 65 20 69 73 20 61 75 74 |This fil|e is aut|
|00000190| 6f 6d 61 74 69 63 61 6c | 6c 79 20 69 6e 63 6c 75 |omatical|ly inclu|
|000001a0| 64 65 64 20 69 66 20 79 | 6f 75 20 64 6f 20 70 65 |ded if y|ou do pe|
|000001b0| 72 6c 20 2d 64 2e 0d 23 | 20 49 74 27 73 20 70 72 |rl -d..#| It's pr|
|000001c0| 6f 62 61 62 6c 79 20 6e | 6f 74 20 75 73 65 66 75 |obably n|ot usefu|
|000001d0| 6c 20 74 6f 20 69 6e 63 | 6c 75 64 65 20 74 68 69 |l to inc|lude thi|
|000001e0| 73 20 79 6f 75 72 73 65 | 6c 66 2e 0d 23 0d 23 20 |s yourse|lf..#.# |
|000001f0| 50 65 72 6c 20 73 75 70 | 70 6c 69 65 73 20 74 68 |Perl sup|plies th|
|00000200| 65 20 76 61 6c 75 65 73 | 20 66 6f 72 20 40 6c 69 |e values| for @li|
|00000210| 6e 65 20 61 6e 64 20 25 | 73 75 62 2e 20 20 49 74 |ne and %|sub. It|
|00000220| 20 65 66 66 65 63 74 69 | 76 65 6c 79 20 69 6e 73 | effecti|vely ins|
|00000230| 65 72 74 73 0d 23 20 61 | 20 64 6f 20 44 42 27 44 |erts.# a| do DB'D|
|00000240| 42 28 3c 6c 69 6e 65 6e | 75 6d 3e 29 3b 20 69 6e |B(<linen|um>); in|
|00000250| 20 66 72 6f 6e 74 20 6f | 66 20 65 76 65 72 79 20 | front o|f every |
|00000260| 70 6c 61 63 65 20 74 68 | 61 74 20 63 61 6e 0d 23 |place th|at can.#|
|00000270| 20 68 61 76 65 20 61 20 | 62 72 65 61 6b 70 6f 69 | have a |breakpoi|
|00000280| 6e 74 2e 20 20 49 74 20 | 61 6c 73 6f 20 69 6e 73 |nt. It |also ins|
|00000290| 65 72 74 73 20 61 20 64 | 6f 20 27 70 65 72 6c 64 |erts a d|o 'perld|
|000002a0| 62 2e 70 6c 27 20 62 65 | 66 6f 72 65 20 74 68 65 |b.pl' be|fore the|
|000002b0| 20 66 69 72 73 74 20 6c | 69 6e 65 2e 0d 23 0d 23 | first l|ine..#.#|
|000002c0| 20 24 4c 6f 67 3a 09 70 | 65 72 6c 64 62 2e 70 6c | $Log:.p|erldb.pl|
|000002d0| 2c 76 20 24 0d 23 20 52 | 65 76 69 73 69 6f 6e 20 |,v $.# R|evision |
|000002e0| 34 2e 30 2e 31 2e 33 20 | 20 39 32 2f 30 36 2f 30 |4.0.1.3 | 92/06/0|
|000002f0| 38 20 20 31 33 3a 34 33 | 3a 35 37 20 20 6c 77 61 |8 13:43|:57 lwa|
|00000300| 6c 6c 0d 23 20 70 61 74 | 63 68 32 30 3a 20 73 75 |ll.# pat|ch20: su|
|00000310| 70 70 6f 72 74 20 66 6f | 72 20 4d 53 44 4f 53 20 |pport fo|r MSDOS |
|00000320| 66 6f 6c 64 65 64 20 69 | 6e 74 6f 20 70 65 72 6c |folded i|nto perl|
|00000330| 64 62 2e 70 6c 0d 23 20 | 70 61 74 63 68 32 30 3a |db.pl.# |patch20:|
|00000340| 20 70 65 72 6c 64 62 20 | 63 6f 75 6c 64 6e 27 74 | perldb |couldn't|
|00000350| 20 64 65 62 75 67 20 66 | 69 6c 65 20 63 6f 6e 74 | debug f|ile cont|
|00000360| 61 69 6e 69 6e 67 20 27 | 2d 27 2c 20 73 75 63 68 |aining '|-', such|
|00000370| 20 61 73 20 53 54 44 49 | 4e 20 64 65 73 69 67 6e | as STDI|N design|
|00000380| 61 74 6f 72 0d 23 20 0d | 23 20 52 65 76 69 73 69 |ator.# .|# Revisi|
|00000390| 6f 6e 20 34 2e 30 2e 31 | 2e 32 20 20 39 31 2f 31 |on 4.0.1|.2 91/1|
|000003a0| 31 2f 30 35 20 20 31 37 | 3a 35 35 3a 35 38 20 20 |1/05 17|:55:58 |
|000003b0| 6c 77 61 6c 6c 0d 23 20 | 70 61 74 63 68 31 31 3a |lwall.# |patch11:|
|000003c0| 20 70 65 72 6c 64 62 2e | 70 6c 20 6d 6f 64 69 66 | perldb.|pl modif|
|000003d0| 69 65 64 20 74 6f 20 72 | 75 6e 20 77 69 74 68 69 |ied to r|un withi|
|000003e0| 6e 20 65 6d 61 63 73 20 | 69 6e 20 70 65 72 6c 64 |n emacs |in perld|
|000003f0| 62 2d 6d 6f 64 65 0d 23 | 20 0d 23 20 52 65 76 69 |b-mode.#| .# Revi|
|00000400| 73 69 6f 6e 20 34 2e 30 | 2e 31 2e 31 20 20 39 31 |sion 4.0|.1.1 91|
|00000410| 2f 30 36 2f 30 37 20 20 | 31 31 3a 31 37 3a 34 34 |/06/07 |11:17:44|
|00000420| 20 20 6c 77 61 6c 6c 0d | 23 20 70 61 74 63 68 34 | lwall.|# patch4|
|00000430| 3a 20 61 64 64 65 64 20 | 24 5e 50 20 76 61 72 69 |: added |$^P vari|
|00000440| 61 62 6c 65 20 74 6f 20 | 63 6f 6e 74 72 6f 6c 20 |able to |control |
|00000450| 63 61 6c 6c 69 6e 67 20 | 6f 66 20 70 65 72 6c 64 |calling |of perld|
|00000460| 62 20 72 6f 75 74 69 6e | 65 73 0d 23 20 70 61 74 |b routin|es.# pat|
|00000470| 63 68 34 3a 20 64 65 62 | 75 67 67 65 72 20 73 6f |ch4: deb|ugger so|
|00000480| 6d 65 74 69 6d 65 73 20 | 6c 69 73 74 65 64 20 77 |metimes |listed w|
|00000490| 72 6f 6e 67 20 6e 75 6d | 62 65 72 20 6f 66 20 6c |rong num|ber of l|
|000004a0| 69 6e 65 73 20 66 6f 72 | 20 61 20 73 74 61 74 65 |ines for| a state|
|000004b0| 6d 65 6e 74 0d 23 20 0d | 23 20 52 65 76 69 73 69 |ment.# .|# Revisi|
|000004c0| 6f 6e 20 34 2e 30 20 20 | 39 31 2f 30 33 2f 32 30 |on 4.0 |91/03/20|
|000004d0| 20 20 30 31 3a 32 35 3a | 35 30 20 20 6c 77 61 6c | 01:25:|50 lwal|
|000004e0| 6c 0d 23 20 34 2e 30 20 | 62 61 73 65 6c 69 6e 65 |l.# 4.0 |baseline|
|000004f0| 2e 0d 23 20 0d 23 20 52 | 65 76 69 73 69 6f 6e 20 |..# .# R|evision |
|00000500| 33 2e 30 2e 31 2e 36 20 | 20 39 31 2f 30 31 2f 31 |3.0.1.6 | 91/01/1|
|00000510| 31 20 20 31 38 3a 30 38 | 3a 35 38 20 20 6c 77 61 |1 18:08|:58 lwa|
|00000520| 6c 6c 0d 23 20 70 61 74 | 63 68 34 32 3a 20 40 5f |ll.# pat|ch42: @_|
|00000530| 20 63 6f 75 6c 64 6e 27 | 74 20 62 65 20 61 63 63 | couldn'|t be acc|
|00000540| 65 73 73 65 64 20 66 72 | 6f 6d 20 64 65 62 75 67 |essed fr|om debug|
|00000550| 67 65 72 0d 23 20 0d 23 | 20 52 65 76 69 73 69 6f |ger.# .#| Revisio|
|00000560| 6e 20 33 2e 30 2e 31 2e | 35 20 20 39 30 2f 31 31 |n 3.0.1.|5 90/11|
|00000570| 2f 31 30 20 20 30 31 3a | 34 30 3a 32 36 20 20 6c |/10 01:|40:26 l|
|00000580| 77 61 6c 6c 0d 23 20 70 | 61 74 63 68 33 38 3a 20 |wall.# p|atch38: |
|00000590| 74 68 65 20 64 65 62 75 | 67 67 65 72 20 77 6f 75 |the debu|gger wou|
|000005a0| 6c 64 6e 27 74 20 73 74 | 6f 70 20 63 6f 72 72 65 |ldn't st|op corre|
|000005b0| 63 74 6c 79 20 6f 72 20 | 64 6f 20 61 63 74 69 6f |ctly or |do actio|
|000005c0| 6e 20 72 6f 75 74 69 6e | 65 73 0d 23 20 0d 23 20 |n routin|es.# .# |
|000005d0| 52 65 76 69 73 69 6f 6e | 20 33 2e 30 2e 31 2e 34 |Revision| 3.0.1.4|
|000005e0| 20 20 39 30 2f 31 30 2f | 31 35 20 20 31 37 3a 34 | 90/10/|15 17:4|
|000005f0| 30 3a 33 38 20 20 6c 77 | 61 6c 6c 0d 23 20 70 61 |0:38 lw|all.# pa|
|00000600| 74 63 68 32 39 3a 20 61 | 64 64 65 64 20 63 61 6c |tch29: a|dded cal|
|00000610| 6c 65 72 0d 23 20 70 61 | 74 63 68 32 39 3a 20 74 |ler.# pa|tch29: t|
|00000620| 68 65 20 64 65 62 75 67 | 67 65 72 20 6e 6f 77 20 |he debug|ger now |
|00000630| 75 6e 64 65 72 73 74 61 | 6e 64 73 20 70 61 63 6b |understa|nds pack|
|00000640| 61 67 65 73 20 61 6e 64 | 20 65 76 61 6c 73 0d 23 |ages and| evals.#|
|00000650| 20 70 61 74 63 68 32 39 | 3a 20 73 63 72 69 70 74 | patch29|: script|
|00000660| 73 20 6e 6f 77 20 72 75 | 6e 20 61 74 20 61 6c 6d |s now ru|n at alm|
|00000670| 6f 73 74 20 66 75 6c 6c | 20 73 70 65 65 64 20 75 |ost full| speed u|
|00000680| 6e 64 65 72 20 74 68 65 | 20 64 65 62 75 67 67 65 |nder the| debugge|
|00000690| 72 0d 23 20 70 61 74 63 | 68 32 39 3a 20 6d 6f 72 |r.# patc|h29: mor|
|000006a0| 65 20 76 61 72 69 61 62 | 6c 65 73 20 61 72 65 20 |e variab|les are |
|000006b0| 73 65 74 74 61 62 6c 65 | 20 66 72 6f 6d 20 64 65 |settable| from de|
|000006c0| 62 75 67 67 65 72 0d 23 | 20 0d 23 20 52 65 76 69 |bugger.#| .# Revi|
|000006d0| 73 69 6f 6e 20 33 2e 30 | 2e 31 2e 33 20 20 39 30 |sion 3.0|.1.3 90|
|000006e0| 2f 30 38 2f 30 39 20 20 | 30 34 3a 30 30 3a 35 38 |/08/09 |04:00:58|
|000006f0| 20 20 6c 77 61 6c 6c 0d | 23 20 70 61 74 63 68 31 | lwall.|# patch1|
|00000700| 39 3a 20 64 65 62 75 67 | 67 65 72 20 6e 6f 77 20 |9: debug|ger now |
|00000710| 61 6c 6c 6f 77 73 20 63 | 6f 6e 74 69 6e 75 61 74 |allows c|ontinuat|
|00000720| 69 6f 6e 20 6c 69 6e 65 | 73 0d 23 20 70 61 74 63 |ion line|s.# patc|
|00000730| 68 31 39 3a 20 64 65 62 | 75 67 67 65 72 20 63 61 |h19: deb|ugger ca|
|00000740| 6e 20 6e 6f 77 20 64 75 | 6d 70 20 6c 69 73 74 73 |n now du|mp lists|
|00000750| 20 6f 66 20 76 61 72 69 | 61 62 6c 65 73 0d 23 20 | of vari|ables.# |
|00000760| 70 61 74 63 68 31 39 3a | 20 64 65 62 75 67 67 65 |patch19:| debugge|
|00000770| 72 20 63 61 6e 20 6e 6f | 77 20 61 64 64 20 61 6c |r can no|w add al|
|00000780| 69 61 73 65 73 20 65 61 | 73 69 6c 79 20 66 72 6f |iases ea|sily fro|
|00000790| 6d 20 70 72 6f 6d 70 74 | 0d 23 20 0d 23 20 52 65 |m prompt|.# .# Re|
|000007a0| 76 69 73 69 6f 6e 20 33 | 2e 30 2e 31 2e 32 20 20 |vision 3|.0.1.2 |
|000007b0| 39 30 2f 30 33 2f 31 32 | 20 20 31 36 3a 33 39 3a |90/03/12| 16:39:|
|000007c0| 33 39 20 20 6c 77 61 6c | 6c 0d 23 20 70 61 74 63 |39 lwal|l.# patc|
|000007d0| 68 31 33 3a 20 70 65 72 | 6c 20 2d 64 20 64 69 64 |h13: per|l -d did|
|000007e0| 6e 27 74 20 66 6f 72 6d | 61 74 20 73 74 61 63 6b |n't form|at stack|
|000007f0| 20 74 72 61 63 65 73 20 | 6f 66 20 2a 66 6f 6f 20 | traces |of *foo |
|00000800| 72 69 67 68 74 0d 23 20 | 70 61 74 63 68 31 33 3a |right.# |patch13:|
|00000810| 20 70 65 72 6c 20 2d 64 | 20 77 69 70 65 64 20 6f | perl -d| wiped o|
|00000820| 75 74 20 73 63 61 6c 61 | 72 20 72 65 74 75 72 6e |ut scala|r return|
|00000830| 20 76 61 6c 75 65 73 20 | 6f 66 20 73 75 62 72 6f | values |of subro|
|00000840| 75 74 69 6e 65 73 0d 23 | 20 0d 23 20 52 65 76 69 |utines.#| .# Revi|
|00000850| 73 69 6f 6e 20 33 2e 30 | 2e 31 2e 31 20 20 38 39 |sion 3.0|.1.1 89|
|00000860| 2f 31 30 2f 32 36 20 20 | 32 33 3a 31 34 3a 30 32 |/10/26 |23:14:02|
|00000870| 20 20 6c 77 61 6c 6c 0d | 23 20 70 61 74 63 68 31 | lwall.|# patch1|
|00000880| 3a 20 52 43 53 20 65 78 | 70 61 6e 64 65 64 20 61 |: RCS ex|panded a|
|00000890| 6e 20 75 6e 69 6e 74 65 | 6e 64 65 64 20 24 48 65 |n uninte|nded $He|
|000008a0| 61 64 65 72 20 69 6e 20 | 6c 69 62 2f 70 65 72 6c |ader in |lib/perl|
|000008b0| 64 62 2e 70 6c 0d 23 20 | 0d 23 20 52 65 76 69 73 |db.pl.# |.# Revis|
|000008c0| 69 6f 6e 20 33 2e 30 20 | 20 38 39 2f 31 30 2f 31 |ion 3.0 | 89/10/1|
|000008d0| 38 20 20 31 35 3a 31 39 | 3a 34 36 20 20 6c 77 61 |8 15:19|:46 lwa|
|000008e0| 6c 6c 0d 23 20 33 2e 30 | 20 62 61 73 65 6c 69 6e |ll.# 3.0| baselin|
|000008f0| 65 0d 23 20 0d 23 20 52 | 65 76 69 73 69 6f 6e 20 |e.# .# R|evision |
|00000900| 32 2e 30 20 20 38 38 2f | 30 36 2f 30 35 20 20 30 |2.0 88/|06/05 0|
|00000910| 30 3a 30 39 3a 34 35 20 | 20 72 6f 6f 74 0d 23 20 |0:09:45 | root.# |
|00000920| 42 61 73 65 6c 69 6e 65 | 20 76 65 72 73 69 6f 6e |Baseline| version|
|00000930| 20 32 2e 30 2e 0d 23 20 | 0d 23 0d 0d 24 63 6f 6e | 2.0..# |.#..$con|
|00000940| 73 6f 6c 65 20 3d 20 22 | 44 65 76 3a 43 6f 6e 73 |sole = "|Dev:Cons|
|00000950| 6f 6c 65 22 3b 0d 24 72 | 63 66 69 6c 65 3d 22 2e |ole";.$r|cfile=".|
|00000960| 70 65 72 6c 64 62 22 3b | 0d 0d 6f 70 65 6e 28 49 |perldb";|..open(I|
|00000970| 4e 2c 20 22 3c 24 63 6f | 6e 73 6f 6c 65 22 29 20 |N, "<$co|nsole") |
|00000980| 7c 7c 20 6f 70 65 6e 28 | 49 4e 2c 20 20 22 3c 26 ||| open(|IN, "<&|
|00000990| 53 54 44 49 4e 22 29 3b | 09 23 20 73 6f 20 77 65 |STDIN");|.# so we|
|000009a0| 20 64 6f 6e 27 74 20 64 | 69 6e 67 6c 65 20 73 74 | don't d|ingle st|
|000009b0| 64 69 6e 0d 6f 70 65 6e | 28 4f 55 54 2c 22 3e 24 |din.open|(OUT,">$|
|000009c0| 63 6f 6e 73 6f 6c 65 22 | 29 20 7c 7c 20 6f 70 65 |console"|) || ope|
|000009d0| 6e 28 4f 55 54 2c 20 22 | 3e 26 53 54 44 4f 55 54 |n(OUT, "|>&STDOUT|
|000009e0| 22 29 3b 09 23 20 73 6f | 20 77 65 20 64 6f 6e 27 |");.# so| we don'|
|000009f0| 74 20 64 6f 6e 67 6c 65 | 20 73 74 64 6f 75 74 0d |t dongle| stdout.|
|00000a00| 73 65 6c 65 63 74 28 4f | 55 54 29 3b 0d 24 7c 20 |select(O|UT);.$| |
|00000a10| 3d 20 31 3b 09 09 09 09 | 23 20 66 6f 72 20 44 42 |= 1;....|# for DB|
|00000a20| 27 4f 55 54 0d 73 65 6c | 65 63 74 28 53 54 44 4f |'OUT.sel|ect(STDO|
|00000a30| 55 54 29 3b 0d 24 7c 20 | 3d 20 31 3b 09 09 09 09 |UT);.$| |= 1;....|
|00000a40| 23 20 66 6f 72 20 72 65 | 61 6c 20 53 54 44 4f 55 |# for re|al STDOU|
|00000a50| 54 0d 24 73 75 62 20 3d | 20 27 27 3b 0d 0d 24 68 |T.$sub =| '';..$h|
|00000a60| 65 61 64 65 72 20 3d 7e | 20 73 2f 2e 48 65 61 64 |eader =~| s/.Head|
|00000a70| 65 72 3a 20 28 5b 5e 2c | 5d 2b 29 2c 76 28 5c 73 |er: ([^,|]+),v(\s|
|00000a80| 2b 5c 53 2b 5c 73 2b 5c | 53 2b 29 2e 2a 24 2f 24 |+\S+\s+\|S+).*$/$|
|00000a90| 31 24 32 2f 3b 0d 70 72 | 69 6e 74 20 4f 55 54 20 |1$2/;.pr|int OUT |
|00000aa0| 22 5c 6e 4c 6f 61 64 69 | 6e 67 20 44 42 20 72 6f |"\nLoadi|ng DB ro|
|00000ab0| 75 74 69 6e 65 73 20 66 | 72 6f 6d 20 24 68 65 61 |utines f|rom $hea|
|00000ac0| 64 65 72 5c 6e 22 3b 0d | 70 72 69 6e 74 20 4f 55 |der\n";.|print OU|
|00000ad0| 54 20 22 5c 6e 45 6e 74 | 65 72 20 68 20 66 6f 72 |T "\nEnt|er h for|
|00000ae0| 20 68 65 6c 70 2e 5c 6e | 5c 6e 22 3b 0d 0d 73 75 | help.\n|\n";..su|
|00000af0| 62 20 44 42 20 7b 0d 20 | 20 20 20 26 73 61 76 65 |b DB {. | &save|
|00000b00| 3b 0d 20 20 20 20 28 24 | 70 61 63 6b 61 67 65 2c |;. ($|package,|
|00000b10| 20 24 66 69 6c 65 6e 61 | 6d 65 2c 20 24 6c 69 6e | $filena|me, $lin|
|00000b20| 65 29 20 3d 20 63 61 6c | 6c 65 72 3b 0d 20 20 20 |e) = cal|ler;. |
|00000b30| 20 24 75 73 65 72 63 6f | 6e 74 65 78 74 20 3d 20 | $userco|ntext = |
|00000b40| 27 28 24 40 2c 20 24 21 | 2c 20 24 5b 2c 20 24 2c |'($@, $!|, $[, $,|
|00000b50| 2c 20 24 2f 2c 20 24 5c | 29 20 3d 20 40 73 61 76 |, $/, $\|) = @sav|
|00000b60| 65 64 3b 27 20 2e 0d 09 | 22 70 61 63 6b 61 67 65 |ed;' ...|"package|
|00000b70| 20 24 70 61 63 6b 61 67 | 65 3b 22 3b 09 09 23 20 | $packag|e;";..# |
|00000b80| 74 68 69 73 20 77 6f 6e | 27 74 20 6c 65 74 20 74 |this won|'t let t|
|00000b90| 68 65 6d 20 6d 6f 64 69 | 66 79 2c 20 61 6c 61 73 |hem modi|fy, alas|
|00000ba0| 0d 20 20 20 20 6c 6f 63 | 61 6c 28 24 5e 50 29 20 |. loc|al($^P) |
|00000bb0| 3d 20 30 3b 09 09 09 23 | 20 64 6f 6e 27 74 20 64 |= 0;...#| don't d|
|00000bc0| 65 62 75 67 20 6f 75 72 | 20 6f 77 6e 20 65 76 61 |ebug our| own eva|
|00000bd0| 6c 73 0d 20 20 20 20 6c | 6f 63 61 6c 28 2a 64 62 |ls. l|ocal(*db|
|00000be0| 6c 69 6e 65 29 20 3d 20 | 22 5f 3c 24 66 69 6c 65 |line) = |"_<$file|
|00000bf0| 6e 61 6d 65 22 3b 0d 20 | 20 20 20 24 6d 61 78 20 |name";. | $max |
|00000c00| 3d 20 24 23 64 62 6c 69 | 6e 65 3b 0d 20 20 20 20 |= $#dbli|ne;. |
|00000c10| 69 66 20 28 28 24 73 74 | 6f 70 2c 24 61 63 74 69 |if (($st|op,$acti|
|00000c20| 6f 6e 29 20 3d 20 73 70 | 6c 69 74 28 2f 5c 30 2f |on) = sp|lit(/\0/|
|00000c30| 2c 24 64 62 6c 69 6e 65 | 7b 24 6c 69 6e 65 7d 29 |,$dbline|{$line})|
|00000c40| 29 20 7b 0d 09 69 66 20 | 28 24 73 74 6f 70 20 65 |) {..if |($stop e|
|00000c50| 71 20 27 31 27 29 20 7b | 0d 09 20 20 20 20 24 73 |q '1') {|.. $s|
|00000c60| 69 67 6e 61 6c 20 7c 3d | 20 31 3b 0d 09 7d 0d 09 |ignal |=| 1;..}..|
|00000c70| 65 6c 73 65 20 7b 0d 09 | 20 20 20 20 24 65 76 61 |else {..| $eva|
|00000c80| 6c 61 72 67 20 3d 20 22 | 5c 24 44 42 27 73 69 67 |larg = "|\$DB'sig|
|00000c90| 6e 61 6c 20 7c 3d 20 64 | 6f 20 7b 24 73 74 6f 70 |nal |= d|o {$stop|
|00000ca0| 3b 7d 22 3b 20 26 65 76 | 61 6c 3b 0d 09 20 20 20 |;}"; &ev|al;.. |
|00000cb0| 20 24 64 62 6c 69 6e 65 | 7b 24 6c 69 6e 65 7d 20 | $dbline|{$line} |
|00000cc0| 3d 7e 20 73 2f 3b 39 28 | 24 7c 5c 30 29 2f 24 31 |=~ s/;9(|$|\0)/$1|
|00000cd0| 2f 3b 0d 09 7d 0d 20 20 | 20 20 7d 0d 20 20 20 20 |/;..}. | }. |
|00000ce0| 69 66 20 28 24 73 69 6e | 67 6c 65 20 7c 7c 20 24 |if ($sin|gle || $|
|00000cf0| 74 72 61 63 65 20 7c 7c | 20 24 73 69 67 6e 61 6c |trace ||| $signal|
|00000d00| 29 20 7b 0d 09 69 66 20 | 28 24 65 6d 61 63 73 29 |) {..if |($emacs)|
|00000d10| 20 7b 0d 09 20 20 20 20 | 70 72 69 6e 74 20 4f 55 | {.. |print OU|
|00000d20| 54 20 22 5c 30 33 32 5c | 30 33 32 24 66 69 6c 65 |T "\032\|032$file|
|00000d30| 6e 61 6d 65 3a 24 6c 69 | 6e 65 3a 30 5c 6e 22 3b |name:$li|ne:0\n";|
|00000d40| 0d 09 7d 20 65 6c 73 65 | 20 7b 0d 09 20 20 20 20 |..} else| {.. |
|00000d50| 70 72 69 6e 74 20 4f 55 | 54 20 22 24 70 61 63 6b |print OU|T "$pack|
|00000d60| 61 67 65 27 22 20 75 6e | 6c 65 73 73 20 24 73 75 |age'" un|less $su|
|00000d70| 62 20 3d 7e 20 2f 27 2f | 3b 0d 09 20 20 20 20 70 |b =~ /'/|;.. p|
|00000d80| 72 69 6e 74 20 4f 55 54 | 20 22 24 73 75 62 28 24 |rint OUT| "$sub($|
|00000d90| 66 69 6c 65 6e 61 6d 65 | 3a 24 6c 69 6e 65 29 3a |filename|:$line):|
|00000da0| 5c 74 22 2c 24 64 62 6c | 69 6e 65 5b 24 6c 69 6e |\t",$dbl|ine[$lin|
|00000db0| 65 5d 3b 0d 09 20 20 20 | 20 66 6f 72 20 28 24 69 |e];.. | for ($i|
|00000dc0| 20 3d 20 24 6c 69 6e 65 | 20 2b 20 31 3b 20 24 69 | = $line| + 1; $i|
|00000dd0| 20 3c 3d 20 24 6d 61 78 | 20 26 26 20 24 64 62 6c | <= $max| && $dbl|
|00000de0| 69 6e 65 5b 24 69 5d 20 | 3d 3d 20 30 3b 20 2b 2b |ine[$i] |== 0; ++|
|00000df0| 24 69 29 20 7b 0d 09 09 | 6c 61 73 74 20 69 66 20 |$i) {...|last if |
|00000e00| 24 64 62 6c 69 6e 65 5b | 24 69 5d 20 3d 7e 20 2f |$dbline[|$i] =~ /|
|00000e10| 5e 5c 73 2a 28 7d 7c 23 | 7c 5c 6e 29 2f 3b 0d 09 |^\s*(}|#||\n)/;..|
|00000e20| 09 70 72 69 6e 74 20 4f | 55 54 20 22 24 73 75 62 |.print O|UT "$sub|
|00000e30| 28 24 66 69 6c 65 6e 61 | 6d 65 3a 24 69 29 3a 5c |($filena|me:$i):\|
|00000e40| 74 22 2c 24 64 62 6c 69 | 6e 65 5b 24 69 5d 3b 0d |t",$dbli|ne[$i];.|
|00000e50| 09 20 20 20 20 7d 0d 09 | 7d 0d 20 20 20 20 7d 0d |. }..|}. }.|
|00000e60| 20 20 20 20 24 65 76 61 | 6c 61 72 67 20 3d 20 24 | $eva|larg = $|
|00000e70| 61 63 74 69 6f 6e 2c 20 | 26 65 76 61 6c 20 69 66 |action, |&eval if|
|00000e80| 20 24 61 63 74 69 6f 6e | 3b 0d 20 20 20 20 69 66 | $action|;. if|
|00000e90| 20 28 24 73 69 6e 67 6c | 65 20 7c 7c 20 24 73 69 | ($singl|e || $si|
|00000ea0| 67 6e 61 6c 29 20 7b 0d | 09 24 65 76 61 6c 61 72 |gnal) {.|.$evalar|
|00000eb0| 67 20 3d 20 24 70 72 65 | 2c 20 26 65 76 61 6c 20 |g = $pre|, &eval |
|00000ec0| 69 66 20 24 70 72 65 3b | 0d 09 70 72 69 6e 74 20 |if $pre;|..print |
|00000ed0| 4f 55 54 20 24 23 73 74 | 61 63 6b 20 2e 20 22 20 |OUT $#st|ack . " |
|00000ee0| 6c 65 76 65 6c 73 20 64 | 65 65 70 20 69 6e 20 73 |levels d|eep in s|
|00000ef0| 75 62 72 6f 75 74 69 6e | 65 20 63 61 6c 6c 73 21 |ubroutin|e calls!|
|00000f00| 5c 6e 22 0d 09 20 20 20 | 20 69 66 20 24 73 69 6e |\n".. | if $sin|
|00000f10| 67 6c 65 20 26 20 34 3b | 0d 09 24 73 74 61 72 74 |gle & 4;|..$start|
|00000f20| 20 3d 20 24 6c 69 6e 65 | 3b 0d 20 20 20 20 20 20 | = $line|;. |
|00000f30| 43 4d 44 3a 0d 09 77 68 | 69 6c 65 20 28 28 70 72 |CMD:..wh|ile ((pr|
|00000f40| 69 6e 74 20 4f 55 54 20 | 22 20 20 44 42 3c 22 2c |int OUT |" DB<",|
|00000f50| 20 24 23 68 69 73 74 2b | 31 2c 20 22 3e 20 22 29 | $#hist+|1, "> ")|
|00000f60| 2c 20 24 63 6d 64 3d 26 | 67 65 74 73 29 20 7b 0d |, $cmd=&|gets) {.|
|00000f70| 09 20 20 20 20 7b 0d 09 | 09 24 73 69 6e 67 6c 65 |. {..|.$single|
|00000f80| 20 3d 20 30 3b 0d 09 09 | 24 73 69 67 6e 61 6c 20 | = 0;...|$signal |
|00000f90| 3d 20 30 3b 0d 09 09 24 | 63 6d 64 20 65 71 20 27 |= 0;...$|cmd eq '|
|00000fa0| 27 20 26 26 20 65 78 69 | 74 20 30 3b 0d 09 09 63 |' && exi|t 0;...c|
|00000fb0| 68 6f 70 28 24 63 6d 64 | 29 3b 0d 09 09 23 20 54 |hop($cmd|);...# T|
|00000fc0| 68 69 73 20 77 69 6c 6c | 20 72 65 6d 6f 76 65 20 |his will| remove |
|00000fd0| 74 68 65 20 70 72 6f 6d | 70 74 20 70 69 63 6b 65 |the prom|pt picke|
|00000fe0| 64 20 75 70 20 62 79 20 | 4d 50 57 0d 09 09 24 74 |d up by |MPW...$t|
|00000ff0| 6d 70 5f 70 72 6f 6d 70 | 74 20 3d 20 22 20 20 44 |mp_promp|t = " D|
|00001000| 42 3c 22 20 2e 20 28 24 | 23 68 69 73 74 20 2b 20 |B<" . ($|#hist + |
|00001010| 31 29 20 2e 20 22 3e 20 | 22 3b 0d 09 09 24 63 6d |1) . "> |";...$cm|
|00001020| 64 20 3d 7e 20 73 2f 5e | 24 74 6d 70 5f 70 72 6f |d =~ s/^|$tmp_pro|
|00001030| 6d 70 74 28 2e 2a 29 24 | 2f 5c 31 2f 3b 0d 09 09 |mpt(.*)$|/\1/;...|
|00001040| 23 20 4d 50 57 20 52 65 | 6d 6f 76 61 6c 20 65 6e |# MPW Re|moval en|
|00001050| 64 65 64 2e 2e 2e 0d 09 | 09 24 63 6d 64 20 3d 7e |ded.....|.$cmd =~|
|00001060| 20 73 2f 5c 5c 24 2f 2f | 20 26 26 20 64 6f 20 7b | s/\\$//| && do {|
|00001070| 0d 09 09 20 20 20 20 70 | 72 69 6e 74 20 4f 55 54 |... p|rint OUT|
|00001080| 20 22 20 20 63 6f 6e 74 | 3a 20 22 3b 0d 09 09 20 | " cont|: ";... |
|00001090| 20 20 20 24 63 6d 64 20 | 2e 3d 20 26 67 65 74 73 | $cmd |.= &gets|
|000010a0| 3b 0d 09 09 20 20 20 20 | 72 65 64 6f 20 43 4d 44 |;... |redo CMD|
|000010b0| 3b 0d 09 09 7d 3b 0d 09 | 09 24 63 6d 64 20 3d 7e |;...};..|.$cmd =~|
|000010c0| 20 2f 5e 71 24 2f 20 26 | 26 20 65 78 69 74 20 30 | /^q$/ &|& exit 0|
|000010d0| 3b 0d 09 09 24 63 6d 64 | 20 3d 7e 20 2f 5e 24 2f |;...$cmd| =~ /^$/|
|000010e0| 20 26 26 20 28 24 63 6d | 64 20 3d 20 24 6c 61 73 | && ($cm|d = $las|
|000010f0| 74 73 74 65 70 29 3b 0d | 09 09 70 75 73 68 28 40 |tstep);.|..push(@|
|00001100| 68 69 73 74 2c 24 63 6d | 64 29 20 69 66 20 6c 65 |hist,$cm|d) if le|
|00001110| 6e 67 74 68 28 24 63 6d | 64 29 20 3e 20 31 3b 0d |ngth($cm|d) > 1;.|
|00001120| 09 09 28 24 69 29 20 3d | 20 73 70 6c 69 74 28 2f |..($i) =| split(/|
|00001130| 5c 73 2b 2f 2c 24 63 6d | 64 29 3b 0d 09 09 65 76 |\s+/,$cm|d);...ev|
|00001140| 61 6c 20 22 5c 24 63 6d | 64 20 3d 7e 20 24 61 6c |al "\$cm|d =~ $al|
|00001150| 69 61 73 7b 24 69 7d 22 | 2c 20 70 72 69 6e 74 20 |ias{$i}"|, print |
|00001160| 4f 55 54 20 24 40 20 69 | 66 20 24 61 6c 69 61 73 |OUT $@ i|f $alias|
|00001170| 7b 24 69 7d 3b 0d 09 09 | 24 63 6d 64 20 3d 7e 20 |{$i};...|$cmd =~ |
|00001180| 2f 5e 68 24 2f 20 26 26 | 20 64 6f 20 7b 0d 09 09 |/^h$/ &&| do {...|
|00001190| 20 20 20 20 70 72 69 6e | 74 20 4f 55 54 20 22 0d | prin|t OUT ".|
|000011a0| 54 09 09 53 74 61 63 6b | 20 74 72 61 63 65 2e 0d |T..Stack| trace..|
|000011b0| 73 09 09 53 69 6e 67 6c | 65 20 73 74 65 70 2e 0d |s..Singl|e step..|
|000011c0| 6e 09 09 4e 65 78 74 2c | 20 73 74 65 70 73 20 6f |n..Next,| steps o|
|000011d0| 76 65 72 20 73 75 62 72 | 6f 75 74 69 6e 65 20 63 |ver subr|outine c|
|000011e0| 61 6c 6c 73 2e 0d 72 09 | 09 52 65 74 75 72 6e 20 |alls..r.|.Return |
|000011f0| 66 72 6f 6d 20 63 75 72 | 72 65 6e 74 20 73 75 62 |from cur|rent sub|
|00001200| 72 6f 75 74 69 6e 65 2e | 0d 63 20 5b 6c 69 6e 65 |routine.|.c [line|
|00001210| 5d 09 43 6f 6e 74 69 6e | 75 65 3b 20 6f 70 74 69 |].Contin|ue; opti|
|00001220| 6f 6e 61 6c 6c 79 20 69 | 6e 73 65 72 74 73 20 61 |onally i|nserts a|
|00001230| 20 6f 6e 65 2d 74 69 6d | 65 2d 6f 6e 6c 79 20 62 | one-tim|e-only b|
|00001240| 72 65 61 6b 70 6f 69 6e | 74 20 0d 09 09 61 74 20 |reakpoin|t ...at |
|00001250| 74 68 65 20 73 70 65 63 | 69 66 69 65 64 20 6c 69 |the spec|ified li|
|00001260| 6e 65 2e 0d 3c 43 52 3e | 09 09 52 65 70 65 61 74 |ne..<CR>|..Repeat|
|00001270| 20 6c 61 73 74 20 6e 20 | 6f 72 20 73 2e 0d 6c 20 | last n |or s..l |
|00001280| 6d 69 6e 2b 69 6e 63 72 | 09 4c 69 73 74 20 69 6e |min+incr|.List in|
|00001290| 63 72 2b 31 20 6c 69 6e | 65 73 20 73 74 61 72 74 |cr+1 lin|es start|
|000012a0| 69 6e 67 20 61 74 20 6d | 69 6e 2e 0d 6c 20 6d 69 |ing at m|in..l mi|
|000012b0| 6e 2d 6d 61 78 09 4c 69 | 73 74 20 6c 69 6e 65 73 |n-max.Li|st lines|
|000012c0| 2e 0d 6c 20 6c 69 6e 65 | 09 09 4c 69 73 74 20 6c |..l line|..List l|
|000012d0| 69 6e 65 3b 0d 6c 09 09 | 4c 69 73 74 20 6e 65 78 |ine;.l..|List nex|
|000012e0| 74 20 77 69 6e 64 6f 77 | 2e 0d 2d 09 09 4c 69 73 |t window|..-..Lis|
|000012f0| 74 20 70 72 65 76 69 6f | 75 73 20 77 69 6e 64 6f |t previo|us windo|
|00001300| 77 2e 0d 77 20 6c 69 6e | 65 09 09 4c 69 73 74 20 |w..w lin|e..List |
|00001310| 77 69 6e 64 6f 77 20 61 | 72 6f 75 6e 64 20 6c 69 |window a|round li|
|00001320| 6e 65 2e 0d 6c 20 73 75 | 62 6e 61 6d 65 09 4c 69 |ne..l su|bname.Li|
|00001330| 73 74 20 73 75 62 72 6f | 75 74 69 6e 65 2e 0d 66 |st subro|utine..f|
|00001340| 20 66 69 6c 65 6e 61 6d | 65 09 53 77 69 74 63 68 | filenam|e.Switch|
|00001350| 20 74 6f 20 66 69 6c 65 | 6e 61 6d 65 2e 0d 2f 70 | to file|name../p|
|00001360| 61 74 74 65 72 6e 2f 09 | 53 65 61 72 63 68 20 66 |attern/.|Search f|
|00001370| 6f 72 77 61 72 64 73 20 | 66 6f 72 20 70 61 74 74 |orwards |for patt|
|00001380| 65 72 6e 3b 20 66 69 6e | 61 6c 20 2f 20 69 73 20 |ern; fin|al / is |
|00001390| 6f 70 74 69 6f 6e 61 6c | 2e 0d 3f 70 61 74 74 65 |optional|..?patte|
|000013a0| 72 6e 3f 09 53 65 61 72 | 63 68 20 62 61 63 6b 77 |rn?.Sear|ch backw|
|000013b0| 61 72 64 73 20 66 6f 72 | 20 70 61 74 74 65 72 6e |ards for| pattern|
|000013c0| 2e 0d 4c 09 09 4c 69 73 | 74 20 62 72 65 61 6b 70 |..L..Lis|t breakp|
|000013d0| 6f 69 6e 74 73 20 61 6e | 64 20 61 63 74 69 6f 6e |oints an|d action|
|000013e0| 73 2e 0d 53 09 09 4c 69 | 73 74 20 73 75 62 72 6f |s..S..Li|st subro|
|000013f0| 75 74 69 6e 65 20 6e 61 | 6d 65 73 2e 0d 74 09 09 |utine na|mes..t..|
|00001400| 54 6f 67 67 6c 65 20 74 | 72 61 63 65 20 6d 6f 64 |Toggle t|race mod|
|00001410| 65 2e 0d 62 20 5b 6c 69 | 6e 65 5d 20 5b 63 6f 6e |e..b [li|ne] [con|
|00001420| 64 69 74 69 6f 6e 5d 0d | 09 09 53 65 74 20 62 72 |dition].|..Set br|
|00001430| 65 61 6b 70 6f 69 6e 74 | 3b 20 6c 69 6e 65 20 64 |eakpoint|; line d|
|00001440| 65 66 61 75 6c 74 73 20 | 74 6f 20 74 68 65 20 63 |efaults |to the c|
|00001450| 75 72 72 65 6e 74 20 65 | 78 65 63 75 74 69 6f 6e |urrent e|xecution|
|00001460| 20 6c 69 6e 65 3b 20 0d | 09 09 63 6f 6e 64 69 74 | line; .|..condit|
|00001470| 69 6f 6e 20 62 72 65 61 | 6b 73 20 69 66 20 69 74 |ion brea|ks if it|
|00001480| 20 65 76 61 6c 75 61 74 | 65 73 20 74 6f 20 74 72 | evaluat|es to tr|
|00001490| 75 65 2c 20 64 65 66 61 | 75 6c 74 73 20 74 6f 20 |ue, defa|ults to |
|000014a0| 5c 27 31 5c 27 2e 0d 62 | 20 73 75 62 6e 61 6d 65 |\'1\'..b| subname|
|000014b0| 20 5b 63 6f 6e 64 69 74 | 69 6f 6e 5d 0d 09 09 53 | [condit|ion]...S|
|000014c0| 65 74 20 62 72 65 61 6b | 70 6f 69 6e 74 20 61 74 |et break|point at|
|000014d0| 20 66 69 72 73 74 20 6c | 69 6e 65 20 6f 66 20 73 | first l|ine of s|
|000014e0| 75 62 72 6f 75 74 69 6e | 65 2e 0d 64 20 5b 6c 69 |ubroutin|e..d [li|
|000014f0| 6e 65 5d 09 44 65 6c 65 | 74 65 20 62 72 65 61 6b |ne].Dele|te break|
|00001500| 70 6f 69 6e 74 2e 0d 44 | 09 09 44 65 6c 65 74 65 |point..D|..Delete|
|00001510| 20 61 6c 6c 20 62 72 65 | 61 6b 70 6f 69 6e 74 73 | all bre|akpoints|
|00001520| 2e 0d 61 20 5b 6c 69 6e | 65 5d 20 63 6f 6d 6d 61 |..a [lin|e] comma|
|00001530| 6e 64 0d 09 09 53 65 74 | 20 61 6e 20 61 63 74 69 |nd...Set| an acti|
|00001540| 6f 6e 20 74 6f 20 62 65 | 20 64 6f 6e 65 20 62 65 |on to be| done be|
|00001550| 66 6f 72 65 20 74 68 65 | 20 6c 69 6e 65 20 69 73 |fore the| line is|
|00001560| 20 65 78 65 63 75 74 65 | 64 2e 0d 09 09 53 65 71 | execute|d....Seq|
|00001570| 75 65 6e 63 65 20 69 73 | 3a 20 63 68 65 63 6b 20 |uence is|: check |
|00001580| 66 6f 72 20 62 72 65 61 | 6b 70 6f 69 6e 74 2c 20 |for brea|kpoint, |
|00001590| 70 72 69 6e 74 20 6c 69 | 6e 65 20 69 66 20 6e 65 |print li|ne if ne|
|000015a0| 63 65 73 73 61 72 79 2c | 0d 09 09 64 6f 20 61 63 |cessary,|...do ac|
|000015b0| 74 69 6f 6e 2c 20 70 72 | 6f 6d 70 74 20 75 73 65 |tion, pr|ompt use|
|000015c0| 72 20 69 66 20 62 72 65 | 61 6b 70 6f 69 6e 74 20 |r if bre|akpoint |
|000015d0| 6f 72 20 73 74 65 70 2c | 20 65 76 61 6c 75 61 74 |or step,| evaluat|
|000015e0| 65 20 6c 69 6e 65 2e 0d | 41 09 09 44 65 6c 65 74 |e line..|A..Delet|
|000015f0| 65 20 61 6c 6c 20 61 63 | 74 69 6f 6e 73 2e 0d 56 |e all ac|tions..V|
|00001600| 20 5b 70 6b 67 20 5b 76 | 61 72 73 5d 5d 09 4c 69 | [pkg [v|ars]].Li|
|00001610| 73 74 20 73 6f 6d 65 20 | 28 64 65 66 61 75 6c 74 |st some |(default|
|00001620| 20 61 6c 6c 29 20 76 61 | 72 69 61 62 6c 65 73 20 | all) va|riables |
|00001630| 69 6e 20 70 61 63 6b 61 | 67 65 20 28 64 65 66 61 |in packa|ge (defa|
|00001640| 75 6c 74 20 63 75 72 72 | 65 6e 74 29 2e 0d 58 20 |ult curr|ent)..X |
|00001650| 5b 76 61 72 73 5d 09 53 | 61 6d 65 20 61 73 20 5c |[vars].S|ame as \|
|00001660| 22 56 20 63 75 72 72 65 | 6e 74 70 61 63 6b 61 67 |"V curre|ntpackag|
|00001670| 65 20 5b 76 61 72 73 5d | 5c 22 2e 0d 3c 20 63 6f |e [vars]|\"..< co|
|00001680| 6d 6d 61 6e 64 09 44 65 | 66 69 6e 65 20 63 6f 6d |mmand.De|fine com|
|00001690| 6d 61 6e 64 20 62 65 66 | 6f 72 65 20 70 72 6f 6d |mand bef|ore prom|
|000016a0| 70 74 2e 0d 3e 20 63 6f | 6d 6d 61 6e 64 09 44 65 |pt..> co|mmand.De|
|000016b0| 66 69 6e 65 20 63 6f 6d | 6d 61 6e 64 20 61 66 74 |fine com|mand aft|
|000016c0| 65 72 20 70 72 6f 6d 70 | 74 2e 0d 21 20 6e 75 6d |er promp|t..! num|
|000016d0| 62 65 72 09 52 65 64 6f | 20 63 6f 6d 6d 61 6e 64 |ber.Redo| command|
|000016e0| 20 28 64 65 66 61 75 6c | 74 20 70 72 65 76 69 6f | (defaul|t previo|
|000016f0| 75 73 20 63 6f 6d 6d 61 | 6e 64 29 2e 0d 21 20 2d |us comma|nd)..! -|
|00001700| 6e 75 6d 62 65 72 09 52 | 65 64 6f 20 6e 75 6d 62 |number.R|edo numb|
|00001710| 65 72 5c 27 74 68 20 74 | 6f 20 6c 61 73 74 20 63 |er\'th t|o last c|
|00001720| 6f 6d 6d 61 6e 64 2e 0d | 48 20 2d 6e 75 6d 62 65 |ommand..|H -numbe|
|00001730| 72 09 44 69 73 70 6c 61 | 79 20 6c 61 73 74 20 6e |r.Displa|y last n|
|00001740| 75 6d 62 65 72 20 63 6f | 6d 6d 61 6e 64 73 20 28 |umber co|mmands (|
|00001750| 64 65 66 61 75 6c 74 20 | 61 6c 6c 29 2e 0d 71 20 |default |all)..q |
|00001760| 6f 72 20 5e 44 09 09 51 | 75 69 74 2e 0d 70 20 65 |or ^D..Q|uit..p e|
|00001770| 78 70 72 09 09 53 61 6d | 65 20 61 73 20 5c 22 70 |xpr..Sam|e as \"p|
|00001780| 72 69 6e 74 20 44 42 27 | 4f 55 54 20 65 78 70 72 |rint DB'|OUT expr|
|00001790| 5c 22 20 69 6e 20 63 75 | 72 72 65 6e 74 20 70 61 |\" in cu|rrent pa|
|000017a0| 63 6b 61 67 65 2e 0d 3d | 20 5b 61 6c 69 61 73 20 |ckage..=| [alias |
|000017b0| 76 61 6c 75 65 5d 09 44 | 65 66 69 6e 65 20 61 20 |value].D|efine a |
|000017c0| 63 6f 6d 6d 61 6e 64 20 | 61 6c 69 61 73 2c 20 6f |command |alias, o|
|000017d0| 72 20 6c 69 73 74 20 63 | 75 72 72 65 6e 74 20 61 |r list c|urrent a|
|000017e0| 6c 69 61 73 65 73 2e 0d | 63 6f 6d 6d 61 6e 64 09 |liases..|command.|
|000017f0| 09 45 78 65 63 75 74 65 | 20 61 73 20 61 20 70 65 |.Execute| as a pe|
|00001800| 72 6c 20 73 74 61 74 65 | 6d 65 6e 74 20 69 6e 20 |rl state|ment in |
|00001810| 63 75 72 72 65 6e 74 20 | 70 61 63 6b 61 67 65 2e |current |package.|
|00001820| 0d 0d 22 3b 0d 09 09 20 | 20 20 20 6e 65 78 74 20 |..";... | next |
|00001830| 43 4d 44 3b 20 7d 3b 0d | 09 09 24 63 6d 64 20 3d |CMD; };.|..$cmd =|
|00001840| 7e 20 2f 5e 74 24 2f 20 | 26 26 20 64 6f 20 7b 0d |~ /^t$/ |&& do {.|
|00001850| 09 09 20 20 20 20 24 74 | 72 61 63 65 20 3d 20 21 |.. $t|race = !|
|00001860| 24 74 72 61 63 65 3b 0d | 09 09 20 20 20 20 70 72 |$trace;.|.. pr|
|00001870| 69 6e 74 20 4f 55 54 20 | 22 54 72 61 63 65 20 3d |int OUT |"Trace =|
|00001880| 20 22 2e 28 24 74 72 61 | 63 65 3f 22 6f 6e 22 3a | ".($tra|ce?"on":|
|00001890| 22 6f 66 66 22 29 2e 22 | 5c 6e 22 3b 0d 09 09 20 |"off")."|\n";... |
|000018a0| 20 20 20 6e 65 78 74 20 | 43 4d 44 3b 20 7d 3b 0d | next |CMD; };.|
|000018b0| 09 09 24 63 6d 64 20 3d | 7e 20 2f 5e 53 24 2f 20 |..$cmd =|~ /^S$/ |
|000018c0| 26 26 20 64 6f 20 7b 0d | 09 09 20 20 20 20 66 6f |&& do {.|.. fo|
|000018d0| 72 65 61 63 68 20 24 73 | 75 62 6e 61 6d 65 20 28 |reach $s|ubname (|
|000018e0| 73 6f 72 74 28 6b 65 79 | 73 20 25 73 75 62 29 29 |sort(key|s %sub))|
|000018f0| 20 7b 0d 09 09 09 70 72 | 69 6e 74 20 4f 55 54 20 | {....pr|int OUT |
|00001900| 24 73 75 62 6e 61 6d 65 | 2c 22 5c 6e 22 3b 0d 09 |$subname|,"\n";..|
|00001910| 09 20 20 20 20 7d 0d 09 | 09 20 20 20 20 6e 65 78 |. }..|. nex|
|00001920| 74 20 43 4d 44 3b 20 7d | 3b 0d 09 09 24 63 6d 64 |t CMD; }|;...$cmd|
|00001930| 20 3d 7e 20 73 2f 5e 58 | 5c 62 2f 56 20 24 70 61 | =~ s/^X|\b/V $pa|
|00001940| 63 6b 61 67 65 2f 3b 0d | 09 09 24 63 6d 64 20 3d |ckage/;.|..$cmd =|
|00001950| 7e 20 2f 5e 56 24 2f 20 | 26 26 20 64 6f 20 7b 0d |~ /^V$/ |&& do {.|
|00001960| 09 09 20 20 20 20 24 63 | 6d 64 20 3d 20 27 56 20 |.. $c|md = 'V |
|00001970| 24 70 61 63 6b 61 67 65 | 27 3b 20 7d 3b 0d 09 09 |$package|'; };...|
|00001980| 24 63 6d 64 20 3d 7e 20 | 2f 5e 56 5c 62 5c 73 2a |$cmd =~ |/^V\b\s*|
|00001990| 28 5c 53 2b 29 5c 73 2a | 28 2e 2a 29 2f 20 26 26 |(\S+)\s*|(.*)/ &&|
|000019a0| 20 64 6f 20 7b 0d 09 09 | 20 20 20 20 24 70 61 63 | do {...| $pac|
|000019b0| 6b 6e 61 6d 65 20 3d 20 | 24 31 3b 0d 09 09 20 20 |kname = |$1;... |
|000019c0| 20 20 40 76 61 72 73 20 | 3d 20 73 70 6c 69 74 28 | @vars |= split(|
|000019d0| 27 20 27 2c 24 32 29 3b | 0d 09 09 20 20 20 20 64 |' ',$2);|... d|
|000019e0| 6f 20 27 64 75 6d 70 76 | 61 72 2e 70 6c 27 20 75 |o 'dumpv|ar.pl' u|
|000019f0| 6e 6c 65 73 73 20 64 65 | 66 69 6e 65 64 20 26 6d |nless de|fined &m|
|00001a00| 61 69 6e 27 64 75 6d 70 | 76 61 72 3b 0d 09 09 20 |ain'dump|var;... |
|00001a10| 20 20 20 69 66 20 28 64 | 65 66 69 6e 65 64 20 26 | if (d|efined &|
|00001a20| 6d 61 69 6e 27 64 75 6d | 70 76 61 72 29 20 7b 0d |main'dum|pvar) {.|
|00001a30| 09 09 09 26 6d 61 69 6e | 27 64 75 6d 70 76 61 72 |...&main|'dumpvar|
|00001a40| 28 24 70 61 63 6b 6e 61 | 6d 65 2c 40 76 61 72 73 |($packna|me,@vars|
|00001a50| 29 3b 0d 09 09 20 20 20 | 20 7d 0d 09 09 20 20 20 |);... | }... |
|00001a60| 20 65 6c 73 65 20 7b 0d | 09 09 09 70 72 69 6e 74 | else {.|...print|
|00001a70| 20 44 42 27 4f 55 54 20 | 22 64 75 6d 70 76 61 72 | DB'OUT |"dumpvar|
|00001a80| 2e 70 6c 20 6e 6f 74 20 | 61 76 61 69 6c 61 62 6c |.pl not |availabl|
|00001a90| 65 2e 5c 6e 22 3b 0d 09 | 09 20 20 20 20 7d 0d 09 |e.\n";..|. }..|
|00001aa0| 09 20 20 20 20 6e 65 78 | 74 20 43 4d 44 3b 20 7d |. nex|t CMD; }|
|00001ab0| 3b 0d 09 09 24 63 6d 64 | 20 3d 7e 20 2f 5e 66 5c |;...$cmd| =~ /^f\|
|00001ac0| 62 5c 73 2a 28 2e 2a 29 | 2f 20 26 26 20 64 6f 20 |b\s*(.*)|/ && do |
|00001ad0| 7b 0d 09 09 20 20 20 20 | 24 66 69 6c 65 20 3d 20 |{... |$file = |
|00001ae0| 24 31 3b 0d 09 09 20 20 | 20 20 69 66 20 28 21 24 |$1;... | if (!$|
|00001af0| 66 69 6c 65 29 20 7b 0d | 09 09 09 70 72 69 6e 74 |file) {.|...print|
|00001b00| 20 4f 55 54 20 22 54 68 | 65 20 6f 6c 64 20 66 20 | OUT "Th|e old f |
|00001b10| 63 6f 6d 6d 61 6e 64 20 | 69 73 20 6e 6f 77 20 74 |command |is now t|
|00001b20| 68 65 20 72 20 63 6f 6d | 6d 61 6e 64 2e 5c 6e 22 |he r com|mand.\n"|
|00001b30| 3b 0d 09 09 09 70 72 69 | 6e 74 20 4f 55 54 20 22 |;....pri|nt OUT "|
|00001b40| 54 68 65 20 6e 65 77 20 | 66 20 63 6f 6d 6d 61 6e |The new |f comman|
|00001b50| 64 20 73 77 69 74 63 68 | 65 73 20 66 69 6c 65 6e |d switch|es filen|
|00001b60| 61 6d 65 73 2e 5c 6e 22 | 3b 0d 09 09 09 6e 65 78 |ames.\n"|;....nex|
|00001b70| 74 20 43 4d 44 3b 0d 09 | 09 20 20 20 20 7d 0d 09 |t CMD;..|. }..|
|00001b80| 09 20 20 20 20 69 66 20 | 28 21 64 65 66 69 6e 65 |. if |(!define|
|00001b90| 64 20 24 5f 6d 61 69 6e | 7b 27 5f 3c 27 20 2e 20 |d $_main|{'_<' . |
|00001ba0| 24 66 69 6c 65 7d 29 20 | 7b 0d 09 09 09 69 66 20 |$file}) |{....if |
|00001bb0| 28 28 24 74 72 79 29 20 | 3d 20 67 72 65 70 28 6d |(($try) |= grep(m|
|00001bc0| 23 5e 5f 3c 2e 2a 24 66 | 69 6c 65 23 2c 20 6b 65 |#^_<.*$f|ile#, ke|
|00001bd0| 79 73 20 25 5f 6d 61 69 | 6e 29 29 20 7b 0d 09 09 |ys %_mai|n)) {...|
|00001be0| 09 20 20 20 20 24 66 69 | 6c 65 20 3d 20 73 75 62 |. $fi|le = sub|
|00001bf0| 73 74 72 28 24 74 72 79 | 2c 32 29 3b 0d 09 09 09 |str($try|,2);....|
|00001c00| 20 20 20 20 70 72 69 6e | 74 20 22 5c 6e 24 66 69 | prin|t "\n$fi|
|00001c10| 6c 65 3a 5c 6e 22 3b 0d | 09 09 09 7d 0d 09 09 20 |le:\n";.|...}... |
|00001c20| 20 20 20 7d 0d 09 09 20 | 20 20 20 69 66 20 28 21 | }... | if (!|
|00001c30| 64 65 66 69 6e 65 64 20 | 24 5f 6d 61 69 6e 7b 27 |defined |$_main{'|
|00001c40| 5f 3c 27 20 2e 20 24 66 | 69 6c 65 7d 29 20 7b 0d |_<' . $f|ile}) {.|
|00001c50| 09 09 09 70 72 69 6e 74 | 20 4f 55 54 20 22 54 68 |...print| OUT "Th|
|00001c60| 65 72 65 27 73 20 6e 6f | 20 63 6f 64 65 20 68 65 |ere's no| code he|
|00001c70| 72 65 20 61 6e 79 74 68 | 69 6e 67 20 6d 61 74 63 |re anyth|ing matc|
|00001c80| 68 69 6e 67 20 24 66 69 | 6c 65 2e 5c 6e 22 3b 0d |hing $fi|le.\n";.|
|00001c90| 09 09 09 6e 65 78 74 20 | 43 4d 44 3b 0d 09 09 20 |...next |CMD;... |
|00001ca0| 20 20 20 7d 0d 09 09 20 | 20 20 20 65 6c 73 69 66 | }... | elsif|
|00001cb0| 20 28 24 66 69 6c 65 20 | 6e 65 20 24 66 69 6c 65 | ($file |ne $file|
|00001cc0| 6e 61 6d 65 29 20 7b 0d | 09 09 09 2a 64 62 6c 69 |name) {.|...*dbli|
|00001cd0| 6e 65 20 3d 20 22 5f 3c | 24 66 69 6c 65 22 3b 0d |ne = "_<|$file";.|
|00001ce0| 09 09 09 24 6d 61 78 20 | 3d 20 24 23 64 62 6c 69 |...$max |= $#dbli|
|00001cf0| 6e 65 3b 0d 09 09 09 24 | 66 69 6c 65 6e 61 6d 65 |ne;....$|filename|
|00001d00| 20 3d 20 24 66 69 6c 65 | 3b 0d 09 09 09 24 73 74 | = $file|;....$st|
|00001d10| 61 72 74 20 3d 20 31 3b | 0d 09 09 09 24 63 6d 64 |art = 1;|....$cmd|
|00001d20| 20 3d 20 22 6c 22 3b 0d | 09 09 20 20 20 20 7d 20 | = "l";.|.. } |
|00001d30| 7d 3b 0d 09 09 24 63 6d | 64 20 3d 7e 20 2f 5e 6c |};...$cm|d =~ /^l|
|00001d40| 5c 62 5c 73 2a 28 5b 27 | 41 2d 5a 61 2d 7a 5f 5d |\b\s*(['|A-Za-z_]|
|00001d50| 5b 27 5c 77 5d 2a 29 2f | 20 26 26 20 64 6f 20 7b |['\w]*)/| && do {|
|00001d60| 0d 09 09 20 20 20 20 24 | 73 75 62 6e 61 6d 65 20 |... $|subname |
|00001d70| 3d 20 24 31 3b 0d 09 09 | 20 20 20 20 24 73 75 62 |= $1;...| $sub|
|00001d80| 6e 61 6d 65 20 3d 20 22 | 6d 61 69 6e 27 22 20 2e |name = "|main'" .|
|00001d90| 20 24 73 75 62 6e 61 6d | 65 20 75 6e 6c 65 73 73 | $subnam|e unless|
|00001da0| 20 24 73 75 62 6e 61 6d | 65 20 3d 7e 20 2f 27 2f | $subnam|e =~ /'/|
|00001db0| 3b 0d 09 09 20 20 20 20 | 24 73 75 62 6e 61 6d 65 |;... |$subname|
|00001dc0| 20 3d 20 22 6d 61 69 6e | 22 20 2e 20 24 73 75 62 | = "main|" . $sub|
|00001dd0| 6e 61 6d 65 20 69 66 20 | 73 75 62 73 74 72 28 24 |name if |substr($|
|00001de0| 73 75 62 6e 61 6d 65 2c | 30 2c 31 29 20 65 71 20 |subname,|0,1) eq |
|00001df0| 22 27 22 3b 0d 09 09 20 | 20 20 20 28 24 66 69 6c |"'";... | ($fil|
|00001e00| 65 2c 24 73 75 62 72 61 | 6e 67 65 29 20 3d 20 73 |e,$subra|nge) = s|
|00001e10| 70 6c 69 74 28 2f 3a 2f | 2c 24 73 75 62 7b 24 73 |plit(/:/|,$sub{$s|
|00001e20| 75 62 6e 61 6d 65 7d 29 | 3b 0d 09 09 20 20 20 20 |ubname})|;... |
|00001e30| 69 66 20 28 24 66 69 6c | 65 20 6e 65 20 24 66 69 |if ($fil|e ne $fi|
|00001e40| 6c 65 6e 61 6d 65 29 20 | 7b 0d 09 09 09 2a 64 62 |lename) |{....*db|
|00001e50| 6c 69 6e 65 20 3d 20 22 | 5f 3c 24 66 69 6c 65 22 |line = "|_<$file"|
|00001e60| 3b 0d 09 09 09 24 6d 61 | 78 20 3d 20 24 23 64 62 |;....$ma|x = $#db|
|00001e70| 6c 69 6e 65 3b 0d 09 09 | 09 24 66 69 6c 65 6e 61 |line;...|.$filena|
|00001e80| 6d 65 20 3d 20 24 66 69 | 6c 65 3b 0d 09 09 20 20 |me = $fi|le;... |
|00001e90| 20 20 7d 0d 09 09 20 20 | 20 20 69 66 20 28 24 73 | }... | if ($s|
|00001ea0| 75 62 72 61 6e 67 65 29 | 20 7b 0d 09 09 09 69 66 |ubrange)| {....if|
|00001eb0| 20 28 65 76 61 6c 28 24 | 73 75 62 72 61 6e 67 65 | (eval($|subrange|
|00001ec0| 29 20 3c 20 2d 24 77 69 | 6e 64 6f 77 29 20 7b 0d |) < -$wi|ndow) {.|
|00001ed0| 09 09 09 20 20 20 20 24 | 73 75 62 72 61 6e 67 65 |... $|subrange|
|00001ee0| 20 3d 7e 20 73 2f 2d 2e | 2a 2f 2b 2f 3b 0d 09 09 | =~ s/-.|*/+/;...|
|00001ef0| 09 7d 0d 09 09 09 24 63 | 6d 64 20 3d 20 22 6c 20 |.}....$c|md = "l |
|00001f00| 24 73 75 62 72 61 6e 67 | 65 22 3b 0d 09 09 20 20 |$subrang|e";... |
|00001f10| 20 20 7d 20 65 6c 73 65 | 20 7b 0d 09 09 09 70 72 | } else| {....pr|
|00001f20| 69 6e 74 20 4f 55 54 20 | 22 53 75 62 72 6f 75 74 |int OUT |"Subrout|
|00001f30| 69 6e 65 20 24 31 20 6e | 6f 74 20 66 6f 75 6e 64 |ine $1 n|ot found|
|00001f40| 2e 5c 6e 22 3b 0d 09 09 | 09 6e 65 78 74 20 43 4d |.\n";...|.next CM|
|00001f50| 44 3b 0d 09 09 20 20 20 | 20 7d 20 7d 3b 0d 09 09 |D;... | } };...|
|00001f60| 24 63 6d 64 20 3d 7e 20 | 2f 5e 77 5c 62 5c 73 2a |$cmd =~ |/^w\b\s*|
|00001f70| 28 5c 64 2a 29 24 2f 20 | 26 26 20 64 6f 20 7b 0d |(\d*)$/ |&& do {.|
|00001f80| 09 09 20 20 20 20 24 69 | 6e 63 72 20 3d 20 24 77 |.. $i|ncr = $w|
|00001f90| 69 6e 64 6f 77 20 2d 20 | 31 3b 0d 09 09 20 20 20 |indow - |1;... |
|00001fa0| 20 24 73 74 61 72 74 20 | 3d 20 24 31 20 69 66 20 | $start |= $1 if |
|00001fb0| 24 31 3b 0d 09 09 20 20 | 20 20 24 73 74 61 72 74 |$1;... | $start|
|00001fc0| 20 2d 3d 20 24 70 72 65 | 76 69 65 77 3b 0d 09 09 | -= $pre|view;...|
|00001fd0| 20 20 20 20 24 63 6d 64 | 20 3d 20 27 6c 20 27 20 | $cmd| = 'l ' |
|00001fe0| 2e 20 24 73 74 61 72 74 | 20 2e 20 27 2d 27 20 2e |. $start| . '-' .|
|00001ff0| 20 28 24 73 74 61 72 74 | 20 2b 20 24 69 6e 63 72 | ($start| + $incr|
|00002000| 29 3b 20 7d 3b 0d 09 09 | 24 63 6d 64 20 3d 7e 20 |); };...|$cmd =~ |
|00002010| 2f 5e 2d 24 2f 20 26 26 | 20 64 6f 20 7b 0d 09 09 |/^-$/ &&| do {...|
|00002020| 20 20 20 20 24 69 6e 63 | 72 20 3d 20 24 77 69 6e | $inc|r = $win|
|00002030| 64 6f 77 20 2d 20 31 3b | 0d 09 09 20 20 20 20 24 |dow - 1;|... $|
|00002040| 63 6d 64 20 3d 20 27 6c | 20 27 20 2e 20 28 24 73 |cmd = 'l| ' . ($s|
|00002050| 74 61 72 74 2d 24 77 69 | 6e 64 6f 77 2a 32 29 20 |tart-$wi|ndow*2) |
|00002060| 2e 20 27 2b 27 3b 20 7d | 3b 0d 09 09 24 63 6d 64 |. '+'; }|;...$cmd|
|00002070| 20 3d 7e 20 2f 5e 6c 24 | 2f 20 26 26 20 64 6f 20 | =~ /^l$|/ && do |
|00002080| 7b 0d 09 09 20 20 20 20 | 24 69 6e 63 72 20 3d 20 |{... |$incr = |
|00002090| 24 77 69 6e 64 6f 77 20 | 2d 20 31 3b 0d 09 09 20 |$window |- 1;... |
|000020a0| 20 20 20 24 63 6d 64 20 | 3d 20 27 6c 20 27 20 2e | $cmd |= 'l ' .|
|000020b0| 20 24 73 74 61 72 74 20 | 2e 20 27 2d 27 20 2e 20 | $start |. '-' . |
|000020c0| 28 24 73 74 61 72 74 20 | 2b 20 24 69 6e 63 72 29 |($start |+ $incr)|
|000020d0| 3b 20 7d 3b 0d 09 09 24 | 63 6d 64 20 3d 7e 20 2f |; };...$|cmd =~ /|
|000020e0| 5e 6c 5c 62 5c 73 2a 28 | 5c 64 2a 29 5c 2b 28 5c |^l\b\s*(|\d*)\+(\|
|000020f0| 64 2a 29 24 2f 20 26 26 | 20 64 6f 20 7b 0d 09 09 |d*)$/ &&| do {...|
|00002100| 20 20 20 20 24 73 74 61 | 72 74 20 3d 20 24 31 20 | $sta|rt = $1 |
|00002110| 69 66 20 24 31 3b 0d 09 | 09 20 20 20 20 24 69 6e |if $1;..|. $in|
|00002120| 63 72 20 3d 20 24 32 3b | 0d 09 09 20 20 20 20 24 |cr = $2;|... $|
|00002130| 69 6e 63 72 20 3d 20 24 | 77 69 6e 64 6f 77 20 2d |incr = $|window -|
|00002140| 20 31 20 75 6e 6c 65 73 | 73 20 24 69 6e 63 72 3b | 1 unles|s $incr;|
|00002150| 0d 09 09 20 20 20 20 24 | 63 6d 64 20 3d 20 27 6c |... $|cmd = 'l|
|00002160| 20 27 20 2e 20 24 73 74 | 61 72 74 20 2e 20 27 2d | ' . $st|art . '-|
|00002170| 27 20 2e 20 28 24 73 74 | 61 72 74 20 2b 20 24 69 |' . ($st|art + $i|
|00002180| 6e 63 72 29 3b 20 7d 3b | 0d 09 09 24 63 6d 64 20 |ncr); };|...$cmd |
|00002190| 3d 7e 20 2f 5e 6c 5c 62 | 5c 73 2a 28 28 5b 5c 64 |=~ /^l\b|\s*(([\d|
|000021a0| 5c 24 5c 2e 5d 2b 29 28 | 5b 2d 2c 5d 28 5b 5c 64 |\$\.]+)(|[-,]([\d|
|000021b0| 5c 24 5c 2e 5d 2b 29 29 | 3f 29 3f 2f 20 26 26 20 |\$\.]+))|?)?/ && |
|000021c0| 64 6f 20 7b 0d 09 09 20 | 20 20 20 24 65 6e 64 20 |do {... | $end |
|000021d0| 3d 20 28 21 24 32 29 20 | 3f 20 24 6d 61 78 20 3a |= (!$2) |? $max :|
|000021e0| 20 28 24 34 20 3f 20 24 | 34 20 3a 20 24 32 29 3b | ($4 ? $|4 : $2);|
|000021f0| 0d 09 09 20 20 20 20 24 | 65 6e 64 20 3d 20 24 6d |... $|end = $m|
|00002200| 61 78 20 69 66 20 24 65 | 6e 64 20 3e 20 24 6d 61 |ax if $e|nd > $ma|
|00002210| 78 3b 0d 09 09 20 20 20 | 20 24 69 20 3d 20 24 32 |x;... | $i = $2|
|00002220| 3b 0d 09 09 20 20 20 20 | 24 69 20 3d 20 24 6c 69 |;... |$i = $li|
|00002230| 6e 65 20 69 66 20 24 69 | 20 65 71 20 27 2e 27 3b |ne if $i| eq '.';|
|00002240| 0d 09 09 20 20 20 20 24 | 69 20 3d 20 31 20 69 66 |... $|i = 1 if|
|00002250| 20 24 69 20 3c 20 31 3b | 0d 09 09 20 20 20 20 69 | $i < 1;|... i|
|00002260| 66 20 28 24 65 6d 61 63 | 73 29 20 7b 0d 09 09 09 |f ($emac|s) {....|
|00002270| 70 72 69 6e 74 20 4f 55 | 54 20 22 5c 30 33 32 5c |print OU|T "\032\|
|00002280| 30 33 32 24 66 69 6c 65 | 6e 61 6d 65 3a 24 69 3a |032$file|name:$i:|
|00002290| 30 5c 6e 22 3b 0d 09 09 | 09 24 69 20 3d 20 24 65 |0\n";...|.$i = $e|
|000022a0| 6e 64 3b 0d 09 09 20 20 | 20 20 7d 20 65 6c 73 65 |nd;... | } else|
|000022b0| 20 7b 0d 09 09 09 66 6f | 72 20 28 3b 20 24 69 20 | {....fo|r (; $i |
|000022c0| 3c 3d 20 24 65 6e 64 3b | 20 24 69 2b 2b 29 20 7b |<= $end;| $i++) {|
|000022d0| 0d 09 09 09 20 20 20 20 | 70 72 69 6e 74 20 4f 55 |.... |print OU|
|000022e0| 54 20 22 24 69 3a 5c 74 | 22 2c 20 24 64 62 6c 69 |T "$i:\t|", $dbli|
|000022f0| 6e 65 5b 24 69 5d 3b 0d | 09 09 09 20 20 20 20 6c |ne[$i];.|... l|
|00002300| 61 73 74 20 69 66 20 24 | 73 69 67 6e 61 6c 3b 0d |ast if $|signal;.|
|00002310| 09 09 09 7d 0d 09 09 20 | 20 20 20 7d 0d 09 09 20 |...}... | }... |
|00002320| 20 20 20 24 73 74 61 72 | 74 20 3d 20 24 69 3b 09 | $star|t = $i;.|
|00002330| 23 20 72 65 6d 65 6d 62 | 65 72 20 69 6e 20 63 61 |# rememb|er in ca|
|00002340| 73 65 20 74 68 65 79 20 | 77 61 6e 74 20 6d 6f 72 |se they |want mor|
|00002350| 65 0d 09 09 20 20 20 20 | 24 73 74 61 72 74 20 3d |e... |$start =|
|00002360| 20 24 6d 61 78 20 69 66 | 20 24 73 74 61 72 74 20 | $max if| $start |
|00002370| 3e 20 24 6d 61 78 3b 0d | 09 09 20 20 20 20 6e 65 |> $max;.|.. ne|
|00002380| 78 74 20 43 4d 44 3b 20 | 7d 3b 0d 09 09 24 63 6d |xt CMD; |};...$cm|
|00002390| 64 20 3d 7e 20 2f 5e 44 | 24 2f 20 26 26 20 64 6f |d =~ /^D|$/ && do|
|000023a0| 20 7b 0d 09 09 20 20 20 | 20 70 72 69 6e 74 20 4f | {... | print O|
|000023b0| 55 54 20 22 44 65 6c 65 | 74 69 6e 67 20 61 6c 6c |UT "Dele|ting all|
|000023c0| 20 62 72 65 61 6b 70 6f | 69 6e 74 73 2e 2e 2e 5c | breakpo|ints...\|
|000023d0| 6e 22 3b 0d 09 09 20 20 | 20 20 66 6f 72 20 28 24 |n";... | for ($|
|000023e0| 69 20 3d 20 31 3b 20 24 | 69 20 3c 3d 20 24 6d 61 |i = 1; $|i <= $ma|
|000023f0| 78 20 3b 20 24 69 2b 2b | 29 20 7b 0d 09 09 09 69 |x ; $i++|) {....i|
|00002400| 66 20 28 64 65 66 69 6e | 65 64 20 24 64 62 6c 69 |f (defin|ed $dbli|
|00002410| 6e 65 7b 24 69 7d 29 20 | 7b 0d 09 09 09 20 20 20 |ne{$i}) |{.... |
|00002420| 20 24 64 62 6c 69 6e 65 | 7b 24 69 7d 20 3d 7e 20 | $dbline|{$i} =~ |
|00002430| 73 2f 5e 5b 5e 5c 30 5d | 2b 2f 2f 3b 0d 09 09 09 |s/^[^\0]|+//;....|
|00002440| 20 20 20 20 69 66 20 28 | 24 64 62 6c 69 6e 65 7b | if (|$dbline{|
|00002450| 24 69 7d 20 3d 7e 20 73 | 2f 5e 5c 30 3f 24 2f 2f |$i} =~ s|/^\0?$//|
|00002460| 29 20 7b 0d 09 09 09 09 | 64 65 6c 65 74 65 20 24 |) {.....|delete $|
|00002470| 64 62 6c 69 6e 65 7b 24 | 69 7d 3b 0d 09 09 09 20 |dbline{$|i};.... |
|00002480| 20 20 20 7d 0d 09 09 09 | 7d 0d 09 09 20 20 20 20 | }....|}... |
|00002490| 7d 0d 09 09 20 20 20 20 | 6e 65 78 74 20 43 4d 44 |}... |next CMD|
|000024a0| 3b 20 7d 3b 0d 09 09 24 | 63 6d 64 20 3d 7e 20 2f |; };...$|cmd =~ /|
|000024b0| 5e 4c 24 2f 20 26 26 20 | 64 6f 20 7b 0d 09 09 20 |^L$/ && |do {... |
|000024c0| 20 20 20 66 6f 72 20 28 | 24 69 20 3d 20 31 3b 20 | for (|$i = 1; |
|000024d0| 24 69 20 3c 3d 20 24 6d | 61 78 3b 20 24 69 2b 2b |$i <= $m|ax; $i++|
|000024e0| 29 20 7b 0d 09 09 09 69 | 66 20 28 64 65 66 69 6e |) {....i|f (defin|
|000024f0| 65 64 20 24 64 62 6c 69 | 6e 65 7b 24 69 7d 29 20 |ed $dbli|ne{$i}) |
|00002500| 7b 0d 09 09 09 20 20 20 | 20 70 72 69 6e 74 20 4f |{.... | print O|
|00002510| 55 54 20 22 24 69 3a 5c | 74 22 2c 20 24 64 62 6c |UT "$i:\|t", $dbl|
|00002520| 69 6e 65 5b 24 69 5d 3b | 0d 09 09 09 20 20 20 20 |ine[$i];|.... |
|00002530| 28 24 73 74 6f 70 2c 24 | 61 63 74 69 6f 6e 29 20 |($stop,$|action) |
|00002540| 3d 20 73 70 6c 69 74 28 | 2f 5c 30 2f 2c 20 24 64 |= split(|/\0/, $d|
|00002550| 62 6c 69 6e 65 7b 24 69 | 7d 29 3b 0d 09 09 09 20 |bline{$i|});.... |
|00002560| 20 20 20 70 72 69 6e 74 | 20 4f 55 54 20 22 20 20 | print| OUT " |
|00002570| 62 72 65 61 6b 20 69 66 | 20 28 22 2c 20 24 73 74 |break if| (", $st|
|00002580| 6f 70 2c 20 22 29 5c 6e | 22 20 0d 09 09 09 09 69 |op, ")\n|" .....i|
|00002590| 66 20 24 73 74 6f 70 3b | 0d 09 09 09 20 20 20 20 |f $stop;|.... |
|000025a0| 70 72 69 6e 74 20 4f 55 | 54 20 22 20 20 61 63 74 |print OU|T " act|
|000025b0| 69 6f 6e 3a 20 20 22 2c | 20 24 61 63 74 69 6f 6e |ion: ",| $action|
|000025c0| 2c 20 22 5c 6e 22 20 0d | 09 09 09 09 69 66 20 24 |, "\n" .|....if $|
|000025d0| 61 63 74 69 6f 6e 3b 0d | 09 09 09 20 20 20 20 6c |action;.|... l|
|000025e0| 61 73 74 20 69 66 20 24 | 73 69 67 6e 61 6c 3b 0d |ast if $|signal;.|
|000025f0| 09 09 09 7d 0d 09 09 20 | 20 20 20 7d 0d 09 09 20 |...}... | }... |
|00002600| 20 20 20 6e 65 78 74 20 | 43 4d 44 3b 20 7d 3b 0d | next |CMD; };.|
|00002610| 09 09 24 63 6d 64 20 3d | 7e 20 2f 5e 62 5c 62 5c |..$cmd =|~ /^b\b\|
|00002620| 73 2a 28 5b 27 41 2d 5a | 61 2d 7a 5f 5d 5b 27 5c |s*(['A-Z|a-z_]['\|
|00002630| 77 5d 2a 29 5c 73 2a 28 | 2e 2a 29 2f 20 26 26 20 |w]*)\s*(|.*)/ && |
|00002640| 64 6f 20 7b 0d 09 09 20 | 20 20 20 24 73 75 62 6e |do {... | $subn|
|00002650| 61 6d 65 20 3d 20 24 31 | 3b 0d 09 09 20 20 20 20 |ame = $1|;... |
|00002660| 24 63 6f 6e 64 20 3d 20 | 24 32 20 7c 7c 20 27 31 |$cond = |$2 || '1|
|00002670| 27 3b 0d 09 09 20 20 20 | 20 24 73 75 62 6e 61 6d |';... | $subnam|
|00002680| 65 20 3d 20 22 24 70 61 | 63 6b 61 67 65 27 22 20 |e = "$pa|ckage'" |
|00002690| 2e 20 24 73 75 62 6e 61 | 6d 65 20 75 6e 6c 65 73 |. $subna|me unles|
|000026a0| 73 20 24 73 75 62 6e 61 | 6d 65 20 3d 7e 20 2f 27 |s $subna|me =~ /'|
|000026b0| 2f 3b 0d 09 09 20 20 20 | 20 24 73 75 62 6e 61 6d |/;... | $subnam|
|000026c0| 65 20 3d 20 22 6d 61 69 | 6e 22 20 2e 20 24 73 75 |e = "mai|n" . $su|
|000026d0| 62 6e 61 6d 65 20 69 66 | 20 73 75 62 73 74 72 28 |bname if| substr(|
|000026e0| 24 73 75 62 6e 61 6d 65 | 2c 30 2c 31 29 20 65 71 |$subname|,0,1) eq|
|000026f0| 20 22 27 22 3b 0d 09 09 | 20 20 20 20 28 24 66 69 | "'";...| ($fi|
|00002700| 6c 65 6e 61 6d 65 2c 24 | 69 29 20 3d 20 73 70 6c |lename,$|i) = spl|
|00002710| 69 74 28 2f 3a 2f 2c 20 | 24 73 75 62 7b 24 73 75 |it(/:/, |$sub{$su|
|00002720| 62 6e 61 6d 65 7d 29 3b | 0d 09 09 20 20 20 20 24 |bname});|... $|
|00002730| 69 20 2b 3d 20 30 3b 0d | 09 09 20 20 20 20 69 66 |i += 0;.|.. if|
|00002740| 20 28 24 69 29 20 7b 0d | 09 09 09 2a 64 62 6c 69 | ($i) {.|...*dbli|
|00002750| 6e 65 20 3d 20 22 5f 3c | 24 66 69 6c 65 6e 61 6d |ne = "_<|$filenam|
|00002760| 65 22 3b 0d 09 09 09 2b | 2b 24 69 20 77 68 69 6c |e";....+|+$i whil|
|00002770| 65 20 24 64 62 6c 69 6e | 65 5b 24 69 5d 20 3d 3d |e $dblin|e[$i] ==|
|00002780| 20 30 20 26 26 20 24 69 | 20 3c 20 24 23 64 62 6c | 0 && $i| < $#dbl|
|00002790| 69 6e 65 3b 0d 09 09 09 | 24 64 62 6c 69 6e 65 7b |ine;....|$dbline{|
|000027a0| 24 69 7d 20 3d 7e 20 73 | 2f 5e 5b 5e 5c 30 5d 2a |$i} =~ s|/^[^\0]*|
|000027b0| 2f 24 63 6f 6e 64 2f 3b | 0d 09 09 20 20 20 20 7d |/$cond/;|... }|
|000027c0| 20 65 6c 73 65 20 7b 0d | 09 09 09 70 72 69 6e 74 | else {.|...print|
|000027d0| 20 4f 55 54 20 22 53 75 | 62 72 6f 75 74 69 6e 65 | OUT "Su|broutine|
|000027e0| 20 24 73 75 62 6e 61 6d | 65 20 6e 6f 74 20 66 6f | $subnam|e not fo|
|000027f0| 75 6e 64 2e 5c 6e 22 3b | 0d 09 09 20 20 20 20 7d |und.\n";|... }|
|00002800| 0d 09 09 20 20 20 20 6e | 65 78 74 20 43 4d 44 3b |... n|ext CMD;|
|00002810| 20 7d 3b 0d 09 09 24 63 | 6d 64 20 3d 7e 20 2f 5e | };...$c|md =~ /^|
|00002820| 62 5c 62 5c 73 2a 28 5c | 64 2a 29 5c 73 2a 28 2e |b\b\s*(\|d*)\s*(.|
|00002830| 2a 29 2f 20 26 26 20 64 | 6f 20 7b 0d 09 09 20 20 |*)/ && d|o {... |
|00002840| 20 20 24 69 20 3d 20 28 | 24 31 3f 24 31 3a 24 6c | $i = (|$1?$1:$l|
|00002850| 69 6e 65 29 3b 0d 09 09 | 20 20 20 20 24 63 6f 6e |ine);...| $con|
|00002860| 64 20 3d 20 24 32 20 7c | 7c 20 27 31 27 3b 0d 09 |d = $2 ||| '1';..|
|00002870| 09 20 20 20 20 69 66 20 | 28 24 64 62 6c 69 6e 65 |. if |($dbline|
|00002880| 5b 24 69 5d 20 3d 3d 20 | 30 29 20 7b 0d 09 09 09 |[$i] == |0) {....|
|00002890| 70 72 69 6e 74 20 4f 55 | 54 20 22 4c 69 6e 65 20 |print OU|T "Line |
|000028a0| 24 69 20 6e 6f 74 20 62 | 72 65 61 6b 61 62 6c 65 |$i not b|reakable|
|000028b0| 2e 5c 6e 22 3b 0d 09 09 | 20 20 20 20 7d 20 65 6c |.\n";...| } el|
|000028c0| 73 65 20 7b 0d 09 09 09 | 24 64 62 6c 69 6e 65 7b |se {....|$dbline{|
|000028d0| 24 69 7d 20 3d 7e 20 73 | 2f 5e 5b 5e 5c 30 5d 2a |$i} =~ s|/^[^\0]*|
|000028e0| 2f 24 63 6f 6e 64 2f 3b | 0d 09 09 20 20 20 20 7d |/$cond/;|... }|
|000028f0| 0d 09 09 20 20 20 20 6e | 65 78 74 20 43 4d 44 3b |... n|ext CMD;|
|00002900| 20 7d 3b 0d 09 09 24 63 | 6d 64 20 3d 7e 20 2f 5e | };...$c|md =~ /^|
|00002910| 64 5c 62 5c 73 2a 28 5c | 64 2b 29 3f 2f 20 26 26 |d\b\s*(\|d+)?/ &&|
|00002920| 20 64 6f 20 7b 0d 09 09 | 20 20 20 20 24 69 20 3d | do {...| $i =|
|00002930| 20 28 24 31 3f 24 31 3a | 24 6c 69 6e 65 29 3b 0d | ($1?$1:|$line);.|
|00002940| 09 09 20 20 20 20 24 64 | 62 6c 69 6e 65 7b 24 69 |.. $d|bline{$i|
|00002950| 7d 20 3d 7e 20 73 2f 5e | 5b 5e 5c 30 5d 2a 2f 2f |} =~ s/^|[^\0]*//|
|00002960| 3b 0d 09 09 20 20 20 20 | 64 65 6c 65 74 65 20 24 |;... |delete $|
|00002970| 64 62 6c 69 6e 65 7b 24 | 69 7d 20 69 66 20 24 64 |dbline{$|i} if $d|
|00002980| 62 6c 69 6e 65 7b 24 69 | 7d 20 65 71 20 27 27 3b |bline{$i|} eq '';|
|00002990| 0d 09 09 20 20 20 20 6e | 65 78 74 20 43 4d 44 3b |... n|ext CMD;|
|000029a0| 20 7d 3b 0d 09 09 24 63 | 6d 64 20 3d 7e 20 2f 5e | };...$c|md =~ /^|
|000029b0| 41 24 2f 20 26 26 20 64 | 6f 20 7b 0d 09 09 20 20 |A$/ && d|o {... |
|000029c0| 20 20 66 6f 72 20 28 24 | 69 20 3d 20 31 3b 20 24 | for ($|i = 1; $|
|000029d0| 69 20 3c 3d 20 24 6d 61 | 78 20 3b 20 24 69 2b 2b |i <= $ma|x ; $i++|
|000029e0| 29 20 7b 0d 09 09 09 69 | 66 20 28 64 65 66 69 6e |) {....i|f (defin|
|000029f0| 65 64 20 24 64 62 6c 69 | 6e 65 7b 24 69 7d 29 20 |ed $dbli|ne{$i}) |
|00002a00| 7b 0d 09 09 09 20 20 20 | 20 24 64 62 6c 69 6e 65 |{.... | $dbline|
|00002a10| 7b 24 69 7d 20 3d 7e 20 | 73 2f 5c 30 5b 5e 5c 30 |{$i} =~ |s/\0[^\0|
|00002a20| 5d 2a 2f 2f 3b 0d 09 09 | 09 20 20 20 20 64 65 6c |]*//;...|. del|
|00002a30| 65 74 65 20 24 64 62 6c | 69 6e 65 7b 24 69 7d 20 |ete $dbl|ine{$i} |
|00002a40| 69 66 20 24 64 62 6c 69 | 6e 65 7b 24 69 7d 20 65 |if $dbli|ne{$i} e|
|00002a50| 71 20 27 27 3b 0d 09 09 | 09 7d 0d 09 09 20 20 20 |q '';...|.}... |
|00002a60| 20 7d 0d 09 09 20 20 20 | 20 6e 65 78 74 20 43 4d | }... | next CM|
|00002a70| 44 3b 20 7d 3b 0d 09 09 | 24 63 6d 64 20 3d 7e 20 |D; };...|$cmd =~ |
|00002a80| 2f 5e 3c 5c 73 2a 28 2e | 2a 29 2f 20 26 26 20 64 |/^<\s*(.|*)/ && d|
|00002a90| 6f 20 7b 0d 09 09 20 20 | 20 20 24 70 72 65 20 3d |o {... | $pre =|
|00002aa0| 20 64 6f 20 61 63 74 69 | 6f 6e 28 24 31 29 3b 0d | do acti|on($1);.|
|00002ab0| 09 09 20 20 20 20 6e 65 | 78 74 20 43 4d 44 3b 20 |.. ne|xt CMD; |
|00002ac0| 7d 3b 0d 09 09 24 63 6d | 64 20 3d 7e 20 2f 5e 3e |};...$cm|d =~ /^>|
|00002ad0| 5c 73 2a 28 2e 2a 29 2f | 20 26 26 20 64 6f 20 7b |\s*(.*)/| && do {|
|00002ae0| 0d 09 09 20 20 20 20 24 | 70 6f 73 74 20 3d 20 64 |... $|post = d|
|00002af0| 6f 20 61 63 74 69 6f 6e | 28 24 31 29 3b 0d 09 09 |o action|($1);...|
|00002b00| 20 20 20 20 6e 65 78 74 | 20 43 4d 44 3b 20 7d 3b | next| CMD; };|
|00002b10| 0d 09 09 24 63 6d 64 20 | 3d 7e 20 2f 5e 61 5c 62 |...$cmd |=~ /^a\b|
|00002b20| 5c 73 2a 28 5c 64 2b 29 | 28 5c 73 2b 28 2e 2a 29 |\s*(\d+)|(\s+(.*)|
|00002b30| 29 3f 2f 20 26 26 20 64 | 6f 20 7b 0d 09 09 20 20 |)?/ && d|o {... |
|00002b40| 20 20 24 69 20 3d 20 24 | 31 3b 0d 09 09 20 20 20 | $i = $|1;... |
|00002b50| 20 69 66 20 28 24 64 62 | 6c 69 6e 65 5b 24 69 5d | if ($db|line[$i]|
|00002b60| 20 3d 3d 20 30 29 20 7b | 0d 09 09 09 70 72 69 6e | == 0) {|....prin|
|00002b70| 74 20 4f 55 54 20 22 4c | 69 6e 65 20 24 69 20 6d |t OUT "L|ine $i m|
|00002b80| 61 79 20 6e 6f 74 20 68 | 61 76 65 20 61 6e 20 61 |ay not h|ave an a|
|00002b90| 63 74 69 6f 6e 2e 5c 6e | 22 3b 0d 09 09 20 20 20 |ction.\n|";... |
|00002ba0| 20 7d 20 65 6c 73 65 20 | 7b 0d 09 09 09 24 64 62 | } else |{....$db|
|00002bb0| 6c 69 6e 65 7b 24 69 7d | 20 3d 7e 20 73 2f 5c 30 |line{$i}| =~ s/\0|
|00002bc0| 5b 5e 5c 30 5d 2a 2f 2f | 3b 0d 09 09 09 24 64 62 |[^\0]*//|;....$db|
|00002bd0| 6c 69 6e 65 7b 24 69 7d | 20 2e 3d 20 22 5c 30 22 |line{$i}| .= "\0"|
|00002be0| 20 2e 20 64 6f 20 61 63 | 74 69 6f 6e 28 24 33 29 | . do ac|tion($3)|
|00002bf0| 3b 0d 09 09 20 20 20 20 | 7d 0d 09 09 20 20 20 20 |;... |}... |
|00002c00| 6e 65 78 74 20 43 4d 44 | 3b 20 7d 3b 0d 09 09 24 |next CMD|; };...$|
|00002c10| 63 6d 64 20 3d 7e 20 2f | 5e 6e 24 2f 20 26 26 20 |cmd =~ /|^n$/ && |
|00002c20| 64 6f 20 7b 0d 09 09 20 | 20 20 20 24 73 69 6e 67 |do {... | $sing|
|00002c30| 6c 65 20 3d 20 32 3b 0d | 09 09 20 20 20 20 24 6c |le = 2;.|.. $l|
|00002c40| 61 73 74 73 74 65 70 20 | 3d 20 24 63 6d 64 3b 0d |aststep |= $cmd;.|
|00002c50| 09 09 20 20 20 20 6c 61 | 73 74 20 43 4d 44 3b 20 |.. la|st CMD; |
|00002c60| 7d 3b 0d 09 09 24 63 6d | 64 20 3d 7e 20 2f 5e 73 |};...$cm|d =~ /^s|
|00002c70| 24 2f 20 26 26 20 64 6f | 20 7b 0d 09 09 20 20 20 |$/ && do| {... |
|00002c80| 20 24 73 69 6e 67 6c 65 | 20 3d 20 31 3b 0d 09 09 | $single| = 1;...|
|00002c90| 20 20 20 20 24 6c 61 73 | 74 73 74 65 70 20 3d 20 | $las|tstep = |
|00002ca0| 24 63 6d 64 3b 0d 09 09 | 20 20 20 20 6c 61 73 74 |$cmd;...| last|
|00002cb0| 20 43 4d 44 3b 20 7d 3b | 0d 09 09 24 63 6d 64 20 | CMD; };|...$cmd |
|00002cc0| 3d 7e 20 2f 5e 63 5c 62 | 5c 73 2a 28 5c 64 2a 29 |=~ /^c\b|\s*(\d*)|
|00002cd0| 5c 73 2a 24 2f 20 26 26 | 20 64 6f 20 7b 0d 09 09 |\s*$/ &&| do {...|
|00002ce0| 20 20 20 20 24 69 20 3d | 20 24 31 3b 0d 09 09 20 | $i =| $1;... |
|00002cf0| 20 20 20 69 66 20 28 24 | 69 29 20 7b 0d 09 09 09 | if ($|i) {....|
|00002d00| 69 66 20 28 24 64 62 6c | 69 6e 65 5b 24 69 5d 20 |if ($dbl|ine[$i] |
|00002d10| 3d 3d 20 30 29 20 7b 0d | 09 09 09 20 20 20 20 70 |== 0) {.|... p|
|00002d20| 72 69 6e 74 20 4f 55 54 | 20 22 4c 69 6e 65 20 24 |rint OUT| "Line $|
|00002d30| 69 20 6e 6f 74 20 62 72 | 65 61 6b 61 62 6c 65 2e |i not br|eakable.|
|00002d40| 5c 6e 22 3b 0d 09 09 09 | 20 20 20 20 6e 65 78 74 |\n";....| next|
|00002d50| 20 43 4d 44 3b 0d 09 09 | 09 7d 0d 09 09 09 24 64 | CMD;...|.}....$d|
|00002d60| 62 6c 69 6e 65 7b 24 69 | 7d 20 3d 7e 20 73 2f 28 |bline{$i|} =~ s/(|
|00002d70| 5c 30 7c 24 29 2f 3b 39 | 24 31 2f 3b 09 23 20 61 |\0|$)/;9|$1/;.# a|
|00002d80| 64 64 20 6f 6e 65 2d 74 | 69 6d 65 2d 6f 6e 6c 79 |dd one-t|ime-only|
|00002d90| 20 62 2e 70 2e 0d 09 09 | 20 20 20 20 7d 0d 09 09 | b.p....| }...|
|00002da0| 20 20 20 20 66 6f 72 20 | 28 24 69 3d 30 3b 20 24 | for |($i=0; $|
|00002db0| 69 20 3c 3d 20 24 23 73 | 74 61 63 6b 3b 20 29 20 |i <= $#s|tack; ) |
|00002dc0| 7b 0d 09 09 09 24 73 74 | 61 63 6b 5b 24 69 2b 2b |{....$st|ack[$i++|
|00002dd0| 5d 20 26 3d 20 7e 31 3b | 0d 09 09 20 20 20 20 7d |] &= ~1;|... }|
|00002de0| 0d 09 09 20 20 20 20 6c | 61 73 74 20 43 4d 44 3b |... l|ast CMD;|
|00002df0| 20 7d 3b 0d 09 09 24 63 | 6d 64 20 3d 7e 20 2f 5e | };...$c|md =~ /^|
|00002e00| 72 24 2f 20 26 26 20 64 | 6f 20 7b 0d 09 09 20 20 |r$/ && d|o {... |
|00002e10| 20 20 24 73 74 61 63 6b | 5b 24 23 73 74 61 63 6b | $stack|[$#stack|
|00002e20| 5d 20 7c 3d 20 32 3b 0d | 09 09 20 20 20 20 6c 61 |] |= 2;.|.. la|
|00002e30| 73 74 20 43 4d 44 3b 20 | 7d 3b 0d 09 09 24 63 6d |st CMD; |};...$cm|
|00002e40| 64 20 3d 7e 20 2f 5e 54 | 24 2f 20 26 26 20 64 6f |d =~ /^T|$/ && do|
|00002e50| 20 7b 0d 09 09 20 20 20 | 20 6c 6f 63 61 6c 28 24 | {... | local($|
|00002e60| 70 2c 24 66 2c 24 6c 2c | 24 73 2c 24 68 2c 24 61 |p,$f,$l,|$s,$h,$a|
|00002e70| 2c 40 61 2c 40 73 75 62 | 29 3b 0d 09 09 20 20 20 |,@a,@sub|);... |
|00002e80| 20 66 6f 72 20 28 24 69 | 20 3d 20 31 3b 20 28 24 | for ($i| = 1; ($|
|00002e90| 70 2c 24 66 2c 24 6c 2c | 24 73 2c 24 68 2c 24 77 |p,$f,$l,|$s,$h,$w|
|00002ea0| 29 20 3d 20 63 61 6c 6c | 65 72 28 24 69 29 3b 20 |) = call|er($i); |
|00002eb0| 24 69 2b 2b 29 20 7b 0d | 09 09 09 40 61 20 3d 20 |$i++) {.|...@a = |
|00002ec0| 40 61 72 67 73 3b 0d 09 | 09 09 66 6f 72 20 28 40 |@args;..|..for (@|
|00002ed0| 61 29 20 7b 0d 09 09 09 | 20 20 20 20 69 66 20 28 |a) {....| if (|
|00002ee0| 2f 5e 53 74 42 5c 30 30 | 30 2f 20 26 26 20 6c 65 |/^StB\00|0/ && le|
|00002ef0| 6e 67 74 68 28 24 5f 29 | 20 3d 3d 20 6c 65 6e 67 |ngth($_)| == leng|
|00002f00| 74 68 28 24 5f 6d 61 69 | 6e 7b 27 5f 6d 61 69 6e |th($_mai|n{'_main|
|00002f10| 27 7d 29 29 20 7b 0d 09 | 09 09 09 24 5f 20 3d 20 |'})) {..|...$_ = |
|00002f20| 73 70 72 69 6e 74 66 28 | 22 25 73 22 2c 24 5f 29 |sprintf(|"%s",$_)|
|00002f30| 3b 0d 09 09 09 20 20 20 | 20 7d 0d 09 09 09 20 20 |;.... | }.... |
|00002f40| 20 20 65 6c 73 65 20 7b | 0d 09 09 09 09 73 2f 27 | else {|.....s/'|
|00002f50| 2f 5c 5c 27 2f 67 3b 0d | 09 09 09 09 73 2f 28 5b |/\\'/g;.|....s/([|
|00002f60| 5e 5c 30 5d 2a 29 2f 27 | 24 31 27 2f 20 75 6e 6c |^\0]*)/'|$1'/ unl|
|00002f70| 65 73 73 20 2f 5e 2d 3f | 5b 5c 64 2e 5d 2b 24 2f |ess /^-?|[\d.]+$/|
|00002f80| 3b 0d 09 09 09 09 73 2f | 28 5b 5c 32 30 30 2d 5c |;.....s/|([\200-\|
|00002f90| 33 37 37 5d 29 2f 73 70 | 72 69 6e 74 66 28 22 4d |377])/sp|rintf("M|
|00002fa0| 2d 25 63 22 2c 6f 72 64 | 28 24 31 29 26 30 31 37 |-%c",ord|($1)&017|
|00002fb0| 37 29 2f 65 67 3b 0d 09 | 09 09 09 73 2f 28 5b 5c |7)/eg;..|...s/([\|
|00002fc0| 30 2d 5c 33 37 5c 31 37 | 37 5d 29 2f 73 70 72 69 |0-\37\17|7])/spri|
|00002fd0| 6e 74 66 28 22 5e 25 63 | 22 2c 6f 72 64 28 24 31 |ntf("^%c|",ord($1|
|00002fe0| 29 5e 36 34 29 2f 65 67 | 3b 0d 09 09 09 20 20 20 |)^64)/eg|;.... |
|00002ff0| 20 7d 0d 09 09 09 7d 0d | 09 09 09 24 77 20 3d 20 | }....}.|...$w = |
|00003000| 24 77 20 3f 20 27 40 20 | 3d 20 27 20 3a 20 27 24 |$w ? '@ |= ' : '$|
|00003010| 20 3d 20 27 3b 0d 09 09 | 09 24 61 20 3d 20 24 68 | = ';...|.$a = $h|
|00003020| 20 3f 20 27 28 27 20 2e | 20 6a 6f 69 6e 28 27 2c | ? '(' .| join(',|
|00003030| 20 27 2c 20 40 61 29 20 | 2e 20 27 29 27 20 3a 20 | ', @a) |. ')' : |
|00003040| 27 27 3b 0d 09 09 09 70 | 75 73 68 28 40 73 75 62 |'';....p|ush(@sub|
|00003050| 2c 20 22 24 77 26 24 73 | 24 61 20 66 72 6f 6d 20 |, "$w&$s|$a from |
|00003060| 66 69 6c 65 20 24 66 20 | 6c 69 6e 65 20 24 6c 5c |file $f |line $l\|
|00003070| 6e 22 29 3b 0d 09 09 09 | 6c 61 73 74 20 69 66 20 |n");....|last if |
|00003080| 24 73 69 67 6e 61 6c 3b | 0d 09 09 20 20 20 20 7d |$signal;|... }|
|00003090| 0d 09 09 20 20 20 20 66 | 6f 72 20 28 24 69 3d 30 |... f|or ($i=0|
|000030a0| 3b 20 24 69 20 3c 3d 20 | 24 23 73 75 62 3b 20 24 |; $i <= |$#sub; $|
|000030b0| 69 2b 2b 29 20 7b 0d 09 | 09 09 6c 61 73 74 20 69 |i++) {..|..last i|
|000030c0| 66 20 24 73 69 67 6e 61 | 6c 3b 0d 09 09 09 70 72 |f $signa|l;....pr|
|000030d0| 69 6e 74 20 4f 55 54 20 | 24 73 75 62 5b 24 69 5d |int OUT |$sub[$i]|
|000030e0| 3b 0d 09 09 20 20 20 20 | 7d 0d 09 09 20 20 20 20 |;... |}... |
|000030f0| 6e 65 78 74 20 43 4d 44 | 3b 20 7d 3b 0d 09 09 24 |next CMD|; };...$|
|00003100| 63 6d 64 20 3d 7e 20 2f | 5e 5c 2f 28 2e 2a 29 24 |cmd =~ /|^\/(.*)$|
|00003110| 2f 20 26 26 20 64 6f 20 | 7b 0d 09 09 20 20 20 20 |/ && do |{... |
|00003120| 24 69 6e 70 61 74 20 3d | 20 24 31 3b 0d 09 09 20 |$inpat =| $1;... |
|00003130| 20 20 20 24 69 6e 70 61 | 74 20 3d 7e 20 73 3a 28 | $inpa|t =~ s:(|
|00003140| 5b 5e 5c 5c 5d 29 2f 24 | 3a 24 31 3a 3b 0d 09 09 |[^\\])/$|:$1:;...|
|00003150| 20 20 20 20 69 66 20 28 | 24 69 6e 70 61 74 20 6e | if (|$inpat n|
|00003160| 65 20 22 22 29 20 7b 0d | 09 09 09 65 76 61 6c 20 |e "") {.|...eval |
|00003170| 27 24 69 6e 70 61 74 20 | 3d 7e 20 6d 27 2e 22 5c |'$inpat |=~ m'."\|
|00003180| 6e 24 69 6e 70 61 74 5c | 6e 22 3b 09 0d 09 09 09 |n$inpat\|n";.....|
|00003190| 69 66 20 28 24 40 20 6e | 65 20 22 22 29 20 7b 0d |if ($@ n|e "") {.|
|000031a0| 09 09 09 20 20 20 20 70 | 72 69 6e 74 20 4f 55 54 |... p|rint OUT|
|000031b0| 20 22 24 40 22 3b 0d 09 | 09 09 20 20 20 20 6e 65 | "$@";..|.. ne|
|000031c0| 78 74 20 43 4d 44 3b 0d | 09 09 09 7d 0d 09 09 09 |xt CMD;.|...}....|
|000031d0| 24 70 61 74 20 3d 20 24 | 69 6e 70 61 74 3b 0d 09 |$pat = $|inpat;..|
|000031e0| 09 20 20 20 20 7d 0d 09 | 09 20 20 20 20 24 65 6e |. }..|. $en|
|000031f0| 64 20 3d 20 24 73 74 61 | 72 74 3b 0d 09 09 20 20 |d = $sta|rt;... |
|00003200| 20 20 65 76 61 6c 20 27 | 0d 09 09 20 20 20 20 66 | eval '|... f|
|00003210| 6f 72 20 28 3b 3b 29 20 | 7b 0d 09 09 09 2b 2b 24 |or (;;) |{....++$|
|00003220| 73 74 61 72 74 3b 0d 09 | 09 09 24 73 74 61 72 74 |start;..|..$start|
|00003230| 20 3d 20 31 20 69 66 20 | 28 24 73 74 61 72 74 20 | = 1 if |($start |
|00003240| 3e 20 24 6d 61 78 29 3b | 0d 09 09 09 6c 61 73 74 |> $max);|....last|
|00003250| 20 69 66 20 28 24 73 74 | 61 72 74 20 3d 3d 20 24 | if ($st|art == $|
|00003260| 65 6e 64 29 3b 0d 09 09 | 09 69 66 20 28 24 64 62 |end);...|.if ($db|
|00003270| 6c 69 6e 65 5b 24 73 74 | 61 72 74 5d 20 3d 7e 20 |line[$st|art] =~ |
|00003280| 6d 27 2e 22 5c 6e 24 70 | 61 74 5c 6e 22 2e 27 69 |m'."\n$p|at\n".'i|
|00003290| 29 20 7b 0d 09 09 09 20 | 20 20 20 69 66 20 28 24 |) {.... | if ($|
|000032a0| 65 6d 61 63 73 29 20 7b | 0d 09 09 09 09 70 72 69 |emacs) {|.....pri|
|000032b0| 6e 74 20 4f 55 54 20 22 | 5c 30 33 32 5c 30 33 32 |nt OUT "|\032\032|
|000032c0| 24 66 69 6c 65 6e 61 6d | 65 3a 24 73 74 61 72 74 |$filenam|e:$start|
|000032d0| 3a 30 5c 6e 22 3b 0d 09 | 09 09 20 20 20 20 7d 20 |:0\n";..|.. } |
|000032e0| 65 6c 73 65 20 7b 0d 09 | 09 09 09 70 72 69 6e 74 |else {..|...print|
|000032f0| 20 4f 55 54 20 22 24 73 | 74 61 72 74 3a 5c 74 22 | OUT "$s|tart:\t"|
|00003300| 2c 20 24 64 62 6c 69 6e | 65 5b 24 73 74 61 72 74 |, $dblin|e[$start|
|00003310| 5d 2c 20 22 5c 6e 22 3b | 0d 09 09 09 20 20 20 20 |], "\n";|.... |
|00003320| 7d 0d 09 09 09 20 20 20 | 20 6c 61 73 74 3b 0d 09 |}.... | last;..|
|00003330| 09 09 7d 0d 09 09 20 20 | 20 20 7d 20 27 3b 0d 09 |..}... | } ';..|
|00003340| 09 20 20 20 20 70 72 69 | 6e 74 20 4f 55 54 20 22 |. pri|nt OUT "|
|00003350| 2f 24 70 61 74 2f 3a 20 | 6e 6f 74 20 66 6f 75 6e |/$pat/: |not foun|
|00003360| 64 5c 6e 22 20 69 66 20 | 28 24 73 74 61 72 74 20 |d\n" if |($start |
|00003370| 3d 3d 20 24 65 6e 64 29 | 3b 0d 09 09 20 20 20 20 |== $end)|;... |
|00003380| 6e 65 78 74 20 43 4d 44 | 3b 20 7d 3b 0d 09 09 24 |next CMD|; };...$|
|00003390| 63 6d 64 20 3d 7e 20 2f | 5e 5c 3f 28 2e 2a 29 24 |cmd =~ /|^\?(.*)$|
|000033a0| 2f 20 26 26 20 64 6f 20 | 7b 0d 09 09 20 20 20 20 |/ && do |{... |
|000033b0| 24 69 6e 70 61 74 20 3d | 20 24 31 3b 0d 09 09 20 |$inpat =| $1;... |
|000033c0| 20 20 20 24 69 6e 70 61 | 74 20 3d 7e 20 73 3a 28 | $inpa|t =~ s:(|
|000033d0| 5b 5e 5c 5c 5d 29 5c 3f | 24 3a 24 31 3a 3b 0d 09 |[^\\])\?|$:$1:;..|
|000033e0| 09 20 20 20 20 69 66 20 | 28 24 69 6e 70 61 74 20 |. if |($inpat |
|000033f0| 6e 65 20 22 22 29 20 7b | 0d 09 09 09 65 76 61 6c |ne "") {|....eval|
|00003400| 20 27 24 69 6e 70 61 74 | 20 3d 7e 20 6d 27 2e 22 | '$inpat| =~ m'."|
|00003410| 5c 6e 24 69 6e 70 61 74 | 5c 6e 22 3b 09 0d 09 09 |\n$inpat|\n";....|
|00003420| 09 69 66 20 28 24 40 20 | 6e 65 20 22 22 29 20 7b |.if ($@ |ne "") {|
|00003430| 0d 09 09 09 20 20 20 20 | 70 72 69 6e 74 20 4f 55 |.... |print OU|
|00003440| 54 20 22 24 40 22 3b 0d | 09 09 09 20 20 20 20 6e |T "$@";.|... n|
|00003450| 65 78 74 20 43 4d 44 3b | 0d 09 09 09 7d 0d 09 09 |ext CMD;|....}...|
|00003460| 09 24 70 61 74 20 3d 20 | 24 69 6e 70 61 74 3b 0d |.$pat = |$inpat;.|
|00003470| 09 09 20 20 20 20 7d 0d | 09 09 20 20 20 20 24 65 |.. }.|.. $e|
|00003480| 6e 64 20 3d 20 24 73 74 | 61 72 74 3b 0d 09 09 20 |nd = $st|art;... |
|00003490| 20 20 20 65 76 61 6c 20 | 27 0d 09 09 20 20 20 20 | eval |'... |
|000034a0| 66 6f 72 20 28 3b 3b 29 | 20 7b 0d 09 09 09 2d 2d |for (;;)| {....--|
|000034b0| 24 73 74 61 72 74 3b 0d | 09 09 09 24 73 74 61 72 |$start;.|...$star|
|000034c0| 74 20 3d 20 24 6d 61 78 | 20 69 66 20 28 24 73 74 |t = $max| if ($st|
|000034d0| 61 72 74 20 3c 3d 20 30 | 29 3b 0d 09 09 09 6c 61 |art <= 0|);....la|
|000034e0| 73 74 20 69 66 20 28 24 | 73 74 61 72 74 20 3d 3d |st if ($|start ==|
|000034f0| 20 24 65 6e 64 29 3b 0d | 09 09 09 69 66 20 28 24 | $end);.|...if ($|
|00003500| 64 62 6c 69 6e 65 5b 24 | 73 74 61 72 74 5d 20 3d |dbline[$|start] =|
|00003510| 7e 20 6d 27 2e 22 5c 6e | 24 70 61 74 5c 6e 22 2e |~ m'."\n|$pat\n".|
|00003520| 27 69 29 20 7b 0d 09 09 | 09 20 20 20 20 69 66 20 |'i) {...|. if |
|00003530| 28 24 65 6d 61 63 73 29 | 20 7b 0d 09 09 09 09 70 |($emacs)| {.....p|
|00003540| 72 69 6e 74 20 4f 55 54 | 20 22 5c 30 33 32 5c 30 |rint OUT| "\032\0|
|00003550| 33 32 24 66 69 6c 65 6e | 61 6d 65 3a 24 73 74 61 |32$filen|ame:$sta|
|00003560| 72 74 3a 30 5c 6e 22 3b | 0d 09 09 09 20 20 20 20 |rt:0\n";|.... |
|00003570| 7d 20 65 6c 73 65 20 7b | 0d 09 09 09 09 70 72 69 |} else {|.....pri|
|00003580| 6e 74 20 4f 55 54 20 22 | 24 73 74 61 72 74 3a 5c |nt OUT "|$start:\|
|00003590| 74 22 2c 20 24 64 62 6c | 69 6e 65 5b 24 73 74 61 |t", $dbl|ine[$sta|
|000035a0| 72 74 5d 2c 20 22 5c 6e | 22 3b 0d 09 09 09 20 20 |rt], "\n|";.... |
|000035b0| 20 20 7d 0d 09 09 09 20 | 20 20 20 6c 61 73 74 3b | }.... | last;|
|000035c0| 0d 09 09 09 7d 0d 09 09 | 20 20 20 20 7d 20 27 3b |....}...| } ';|
|000035d0| 0d 09 09 20 20 20 20 70 | 72 69 6e 74 20 4f 55 54 |... p|rint OUT|
|000035e0| 20 22 3f 24 70 61 74 3f | 3a 20 6e 6f 74 20 66 6f | "?$pat?|: not fo|
|000035f0| 75 6e 64 5c 6e 22 20 69 | 66 20 28 24 73 74 61 72 |und\n" i|f ($star|
|00003600| 74 20 3d 3d 20 24 65 6e | 64 29 3b 0d 09 09 20 20 |t == $en|d);... |
|00003610| 20 20 6e 65 78 74 20 43 | 4d 44 3b 20 7d 3b 0d 09 | next C|MD; };..|
|00003620| 09 24 63 6d 64 20 3d 7e | 20 2f 5e 21 2b 5c 73 2a |.$cmd =~| /^!+\s*|
|00003630| 28 2d 29 3f 28 5c 64 2b | 29 3f 24 2f 20 26 26 20 |(-)?(\d+|)?$/ && |
|00003640| 64 6f 20 7b 0d 09 09 20 | 20 20 20 70 6f 70 28 40 |do {... | pop(@|
|00003650| 68 69 73 74 29 20 69 66 | 20 6c 65 6e 67 74 68 28 |hist) if| length(|
|00003660| 24 63 6d 64 29 20 3e 20 | 31 3b 0d 09 09 20 20 20 |$cmd) > |1;... |
|00003670| 20 24 69 20 3d 20 28 24 | 31 3f 28 24 23 68 69 73 | $i = ($|1?($#his|
|00003680| 74 2d 28 24 32 3f 24 32 | 3a 31 29 29 3a 28 24 32 |t-($2?$2|:1)):($2|
|00003690| 3f 24 32 3a 24 23 68 69 | 73 74 29 29 3b 0d 09 09 |?$2:$#hi|st));...|
|000036a0| 20 20 20 20 24 63 6d 64 | 20 3d 20 24 68 69 73 74 | $cmd| = $hist|
|000036b0| 5b 24 69 5d 20 2e 20 22 | 5c 6e 22 3b 0d 09 09 20 |[$i] . "|\n";... |
|000036c0| 20 20 20 70 72 69 6e 74 | 20 4f 55 54 20 24 63 6d | print| OUT $cm|
|000036d0| 64 3b 0d 09 09 20 20 20 | 20 72 65 64 6f 20 43 4d |d;... | redo CM|
|000036e0| 44 3b 20 7d 3b 0d 09 09 | 24 63 6d 64 20 3d 7e 20 |D; };...|$cmd =~ |
|000036f0| 2f 5e 21 28 2e 2b 29 24 | 2f 20 26 26 20 64 6f 20 |/^!(.+)$|/ && do |
|00003700| 7b 0d 09 09 20 20 20 20 | 24 70 61 74 20 3d 20 22 |{... |$pat = "|
|00003710| 5e 24 31 22 3b 0d 09 09 | 20 20 20 20 70 6f 70 28 |^$1";...| pop(|
|00003720| 40 68 69 73 74 29 20 69 | 66 20 6c 65 6e 67 74 68 |@hist) i|f length|
|00003730| 28 24 63 6d 64 29 20 3e | 20 31 3b 0d 09 09 20 20 |($cmd) >| 1;... |
|00003740| 20 20 66 6f 72 20 28 24 | 69 20 3d 20 24 23 68 69 | for ($|i = $#hi|
|00003750| 73 74 3b 20 24 69 3b 20 | 2d 2d 24 69 29 20 7b 0d |st; $i; |--$i) {.|
|00003760| 09 09 09 6c 61 73 74 20 | 69 66 20 24 68 69 73 74 |...last |if $hist|
|00003770| 5b 24 69 5d 20 3d 7e 20 | 24 70 61 74 3b 0d 09 09 |[$i] =~ |$pat;...|
|00003780| 20 20 20 20 7d 0d 09 09 | 20 20 20 20 69 66 20 28 | }...| if (|
|00003790| 21 24 69 29 20 7b 0d 09 | 09 09 70 72 69 6e 74 20 |!$i) {..|..print |
|000037a0| 4f 55 54 20 22 4e 6f 20 | 73 75 63 68 20 63 6f 6d |OUT "No |such com|
|000037b0| 6d 61 6e 64 21 5c 6e 5c | 6e 22 3b 0d 09 09 09 6e |mand!\n\|n";....n|
|000037c0| 65 78 74 20 43 4d 44 3b | 0d 09 09 20 20 20 20 7d |ext CMD;|... }|
|000037d0| 0d 09 09 20 20 20 20 24 | 63 6d 64 20 3d 20 24 68 |... $|cmd = $h|
|000037e0| 69 73 74 5b 24 69 5d 20 | 2e 20 22 5c 6e 22 3b 0d |ist[$i] |. "\n";.|
|000037f0| 09 09 20 20 20 20 70 72 | 69 6e 74 20 4f 55 54 20 |.. pr|int OUT |
|00003800| 24 63 6d 64 3b 0d 09 09 | 20 20 20 20 72 65 64 6f |$cmd;...| redo|
|00003810| 20 43 4d 44 3b 20 7d 3b | 0d 09 09 24 63 6d 64 20 | CMD; };|...$cmd |
|00003820| 3d 7e 20 2f 5e 48 5c 62 | 5c 73 2a 28 2d 28 5c 64 |=~ /^H\b|\s*(-(\d|
|00003830| 2b 29 29 3f 2f 20 26 26 | 20 64 6f 20 7b 0d 09 09 |+))?/ &&| do {...|
|00003840| 20 20 20 20 24 65 6e 64 | 20 3d 20 24 32 3f 28 24 | $end| = $2?($|
|00003850| 23 68 69 73 74 2d 24 32 | 29 3a 30 3b 0d 09 09 20 |#hist-$2|):0;... |
|00003860| 20 20 20 24 68 69 73 74 | 20 3d 20 30 20 69 66 20 | $hist| = 0 if |
|00003870| 24 68 69 73 74 20 3c 20 | 30 3b 0d 09 09 20 20 20 |$hist < |0;... |
|00003880| 20 66 6f 72 20 28 24 69 | 3d 24 23 68 69 73 74 3b | for ($i|=$#hist;|
|00003890| 20 24 69 3e 24 65 6e 64 | 3b 20 24 69 2d 2d 29 20 | $i>$end|; $i--) |
|000038a0| 7b 0d 09 09 09 70 72 69 | 6e 74 20 4f 55 54 20 22 |{....pri|nt OUT "|
|000038b0| 24 69 3a 20 22 2c 24 68 | 69 73 74 5b 24 69 5d 2c |$i: ",$h|ist[$i],|
|000038c0| 22 5c 6e 22 0d 09 09 09 | 20 20 20 20 75 6e 6c 65 |"\n"....| unle|
|000038d0| 73 73 20 24 68 69 73 74 | 5b 24 69 5d 20 3d 7e 20 |ss $hist|[$i] =~ |
|000038e0| 2f 5e 2e 3f 24 2f 3b 0d | 09 09 20 20 20 20 7d 3b |/^.?$/;.|.. };|
|000038f0| 0d 09 09 20 20 20 20 6e | 65 78 74 20 43 4d 44 3b |... n|ext CMD;|
|00003900| 20 7d 3b 0d 09 09 24 63 | 6d 64 20 3d 7e 20 73 2f | };...$c|md =~ s/|
|00003910| 5e 70 28 20 2e 2a 29 3f | 24 2f 70 72 69 6e 74 20 |^p( .*)?|$/print |
|00003920| 44 42 27 4f 55 54 24 31 | 2f 3b 0d 09 09 24 63 6d |DB'OUT$1|/;...$cm|
|00003930| 64 20 3d 7e 20 2f 5e 3d | 2f 20 26 26 20 64 6f 20 |d =~ /^=|/ && do |
|00003940| 7b 0d 09 09 20 20 20 20 | 69 66 20 28 6c 6f 63 61 |{... |if (loca|
|00003950| 6c 28 24 6b 2c 24 76 29 | 20 3d 20 28 24 63 6d 64 |l($k,$v)| = ($cmd|
|00003960| 20 3d 7e 20 2f 5e 3d 5c | 73 2a 28 5c 53 2b 29 5c | =~ /^=\|s*(\S+)\|
|00003970| 73 2b 28 2e 2a 29 2f 29 | 29 20 7b 0d 09 09 09 24 |s+(.*)/)|) {....$|
|00003980| 61 6c 69 61 73 7b 24 6b | 7d 3d 22 73 7e 24 6b 7e |alias{$k|}="s~$k~|
|00003990| 24 76 7e 22 3b 0d 09 09 | 09 70 72 69 6e 74 20 4f |$v~";...|.print O|
|000039a0| 55 54 20 22 24 6b 20 3d | 20 24 76 5c 6e 22 3b 0d |UT "$k =| $v\n";.|
|000039b0| 09 09 20 20 20 20 7d 20 | 65 6c 73 69 66 20 28 24 |.. } |elsif ($|
|000039c0| 63 6d 64 20 3d 7e 20 2f | 5e 3d 5c 73 2a 24 2f 29 |cmd =~ /|^=\s*$/)|
|000039d0| 20 7b 0d 09 09 09 66 6f | 72 65 61 63 68 20 24 6b | {....fo|reach $k|
|000039e0| 20 28 73 6f 72 74 20 6b | 65 79 73 28 25 61 6c 69 | (sort k|eys(%ali|
|000039f0| 61 73 29 29 20 7b 0d 09 | 09 09 20 20 20 20 69 66 |as)) {..|.. if|
|00003a00| 20 28 28 24 76 20 3d 20 | 24 61 6c 69 61 73 7b 24 | (($v = |$alias{$|
|00003a10| 6b 7d 29 20 3d 7e 20 73 | 7e 5e 73 5c 7e 24 6b 5c |k}) =~ s|~^s\~$k\|
|00003a20| 7e 28 2e 2a 29 5c 7e 24 | 7e 24 31 7e 29 20 7b 0d |~(.*)\~$|~$1~) {.|
|00003a30| 09 09 09 09 70 72 69 6e | 74 20 4f 55 54 20 22 24 |....prin|t OUT "$|
|00003a40| 6b 20 3d 20 24 76 5c 6e | 22 3b 0d 09 09 09 20 20 |k = $v\n|";.... |
|00003a50| 20 20 7d 20 65 6c 73 65 | 20 7b 0d 09 09 09 09 70 | } else| {.....p|
|00003a60| 72 69 6e 74 20 4f 55 54 | 20 22 24 6b 5c 74 24 61 |rint OUT| "$k\t$a|
|00003a70| 6c 69 61 73 7b 24 6b 7d | 5c 6e 22 3b 0d 09 09 09 |lias{$k}|\n";....|
|00003a80| 20 20 20 20 7d 3b 0d 09 | 09 09 7d 3b 0d 09 09 20 | };..|..};... |
|00003a90| 20 20 20 7d 3b 0d 09 09 | 20 20 20 20 6e 65 78 74 | };...| next|
|00003aa0| 20 43 4d 44 3b 20 7d 3b | 0d 09 20 20 20 20 7d 0d | CMD; };|.. }.|
|00003ab0| 09 20 20 20 20 24 65 76 | 61 6c 61 72 67 20 3d 20 |. $ev|alarg = |
|00003ac0| 24 63 6d 64 3b 20 26 65 | 76 61 6c 3b 0d 09 20 20 |$cmd; &e|val;.. |
|00003ad0| 20 20 70 72 69 6e 74 20 | 4f 55 54 20 22 5c 6e 22 | print |OUT "\n"|
|00003ae0| 3b 0d 09 7d 0d 09 69 66 | 20 28 24 70 6f 73 74 29 |;..}..if| ($post)|
|00003af0| 20 7b 0d 09 20 20 20 20 | 24 65 76 61 6c 61 72 67 | {.. |$evalarg|
|00003b00| 20 3d 20 24 70 6f 73 74 | 3b 20 26 65 76 61 6c 3b | = $post|; &eval;|
|00003b10| 0d 09 7d 0d 20 20 20 20 | 7d 0d 20 20 20 20 28 24 |..}. |}. ($|
|00003b20| 40 2c 20 24 21 2c 20 24 | 5b 2c 20 24 2c 2c 20 24 |@, $!, $|[, $,, $|
|00003b30| 2f 2c 20 24 5c 29 20 3d | 20 40 73 61 76 65 64 3b |/, $\) =| @saved;|
|00003b40| 0d 7d 0d 0d 73 75 62 20 | 73 61 76 65 20 7b 0d 20 |.}..sub |save {. |
|00003b50| 20 20 20 40 73 61 76 65 | 64 20 3d 20 28 24 40 2c | @save|d = ($@,|
|00003b60| 20 24 21 2c 20 24 5b 2c | 20 24 2c 2c 20 24 2f 2c | $!, $[,| $,, $/,|
|00003b70| 20 24 5c 29 3b 0d 20 20 | 20 20 24 5b 20 3d 20 30 | $\);. | $[ = 0|
|00003b80| 3b 20 24 2c 20 3d 20 22 | 22 3b 20 24 2f 20 3d 20 |; $, = "|"; $/ = |
|00003b90| 22 5c 6e 22 3b 20 24 5c | 20 3d 20 22 22 3b 0d 7d |"\n"; $\| = "";.}|
|00003ba0| 0d 0d 23 20 54 68 65 20 | 66 6f 6c 6c 6f 77 69 6e |..# The |followin|
|00003bb0| 67 20 74 61 6b 65 73 20 | 69 74 73 20 61 72 67 75 |g takes |its argu|
|00003bc0| 6d 65 6e 74 20 76 69 61 | 20 24 65 76 61 6c 61 72 |ment via| $evalar|
|00003bd0| 67 20 74 6f 20 70 72 65 | 73 65 72 76 65 20 63 75 |g to pre|serve cu|
|00003be0| 72 72 65 6e 74 20 40 5f | 0d 0d 73 75 62 20 65 76 |rrent @_|..sub ev|
|00003bf0| 61 6c 20 7b 0d 20 20 20 | 20 65 76 61 6c 20 22 24 |al {. | eval "$|
|00003c00| 75 73 65 72 63 6f 6e 74 | 65 78 74 20 24 65 76 61 |usercont|ext $eva|
|00003c10| 6c 61 72 67 3b 20 26 44 | 42 27 73 61 76 65 22 3b |larg; &D|B'save";|
|00003c20| 0d 20 20 20 20 70 72 69 | 6e 74 20 4f 55 54 20 24 |. pri|nt OUT $|
|00003c30| 40 3b 0d 7d 0d 0d 73 75 | 62 20 61 63 74 69 6f 6e |@;.}..su|b action|
|00003c40| 20 7b 0d 20 20 20 20 6c | 6f 63 61 6c 28 24 61 63 | {. l|ocal($ac|
|00003c50| 74 69 6f 6e 29 20 3d 20 | 40 5f 3b 0d 20 20 20 20 |tion) = |@_;. |
|00003c60| 77 68 69 6c 65 20 28 24 | 61 63 74 69 6f 6e 20 3d |while ($|action =|
|00003c70| 7e 20 73 2f 5c 5c 24 2f | 2f 29 20 7b 0d 09 70 72 |~ s/\\$/|/) {..pr|
|00003c80| 69 6e 74 20 4f 55 54 20 | 22 2b 20 22 3b 0d 09 24 |int OUT |"+ ";..$|
|00003c90| 61 63 74 69 6f 6e 20 2e | 3d 20 26 67 65 74 73 3b |action .|= &gets;|
|00003ca0| 0d 20 20 20 20 7d 0d 20 | 20 20 20 24 61 63 74 69 |. }. | $acti|
|00003cb0| 6f 6e 3b 0d 7d 0d 0d 73 | 75 62 20 67 65 74 73 20 |on;.}..s|ub gets |
|00003cc0| 7b 0d 20 20 20 20 6c 6f | 63 61 6c 28 24 2e 29 3b |{. lo|cal($.);|
|00003cd0| 0d 20 20 20 20 3c 49 4e | 3e 3b 0d 7d 0d 0d 73 75 |. <IN|>;.}..su|
|00003ce0| 62 20 63 61 74 63 68 20 | 7b 0d 20 20 20 20 24 73 |b catch |{. $s|
|00003cf0| 69 67 6e 61 6c 20 3d 20 | 31 3b 0d 7d 0d 0d 73 75 |ignal = |1;.}..su|
|00003d00| 62 20 73 75 62 20 7b 0d | 20 20 20 20 70 75 73 68 |b sub {.| push|
|00003d10| 28 40 73 74 61 63 6b 2c | 20 24 73 69 6e 67 6c 65 |(@stack,| $single|
|00003d20| 29 3b 0d 20 20 20 20 24 | 73 69 6e 67 6c 65 20 26 |);. $|single &|
|00003d30| 3d 20 31 3b 0d 20 20 20 | 20 24 73 69 6e 67 6c 65 |= 1;. | $single|
|00003d40| 20 7c 3d 20 34 20 69 66 | 20 24 23 73 74 61 63 6b | |= 4 if| $#stack|
|00003d50| 20 3d 3d 20 24 64 65 65 | 70 3b 0d 20 20 20 20 69 | == $dee|p;. i|
|00003d60| 66 20 28 77 61 6e 74 61 | 72 72 61 79 29 20 7b 0d |f (wanta|rray) {.|
|00003d70| 09 40 69 20 3d 20 26 24 | 73 75 62 3b 0d 09 24 73 |.@i = &$|sub;..$s|
|00003d80| 69 6e 67 6c 65 20 7c 3d | 20 70 6f 70 28 40 73 74 |ingle |=| pop(@st|
|00003d90| 61 63 6b 29 3b 0d 09 40 | 69 3b 0d 20 20 20 20 7d |ack);..@|i;. }|
|00003da0| 0d 20 20 20 20 65 6c 73 | 65 20 7b 0d 09 24 69 20 |. els|e {..$i |
|00003db0| 3d 20 26 24 73 75 62 3b | 0d 09 24 73 69 6e 67 6c |= &$sub;|..$singl|
|00003dc0| 65 20 7c 3d 20 70 6f 70 | 28 40 73 74 61 63 6b 29 |e |= pop|(@stack)|
|00003dd0| 3b 0d 09 24 69 3b 0d 20 | 20 20 20 7d 0d 7d 0d 0d |;..$i;. | }.}..|
|00003de0| 24 73 69 6e 67 6c 65 20 | 3d 20 31 3b 09 09 09 23 |$single |= 1;...#|
|00003df0| 20 73 6f 20 69 74 20 73 | 74 6f 70 73 20 6f 6e 20 | so it s|tops on |
|00003e00| 66 69 72 73 74 20 65 78 | 65 63 75 74 61 62 6c 65 |first ex|ecutable|
|00003e10| 20 73 74 61 74 65 6d 65 | 6e 74 0d 40 68 69 73 74 | stateme|nt.@hist|
|00003e20| 20 3d 20 28 27 3f 27 29 | 3b 0d 24 53 49 47 7b 27 | = ('?')|;.$SIG{'|
|00003e30| 49 4e 54 27 7d 20 3d 20 | 22 44 42 27 63 61 74 63 |INT'} = |"DB'catc|
|00003e40| 68 22 3b 0d 24 64 65 65 | 70 20 3d 20 31 30 30 3b |h";.$dee|p = 100;|
|00003e50| 09 09 23 20 77 61 72 6e | 69 6e 67 20 69 66 20 73 |..# warn|ing if s|
|00003e60| 74 61 63 6b 20 67 65 74 | 73 20 74 68 69 73 20 64 |tack get|s this d|
|00003e70| 65 65 70 0d 24 77 69 6e | 64 6f 77 20 3d 20 31 30 |eep.$win|dow = 10|
|00003e80| 3b 0d 24 70 72 65 76 69 | 65 77 20 3d 20 33 3b 0d |;.$previ|ew = 3;.|
|00003e90| 0d 40 73 74 61 63 6b 20 | 3d 20 28 30 29 3b 0d 40 |.@stack |= (0);.@|
|00003ea0| 41 52 47 53 20 3d 20 40 | 41 52 47 56 3b 0d 66 6f |ARGS = @|ARGV;.fo|
|00003eb0| 72 20 28 40 61 72 67 73 | 29 20 7b 0d 20 20 20 20 |r (@args|) {. |
|00003ec0| 73 2f 27 2f 5c 5c 27 2f | 67 3b 0d 20 20 20 20 73 |s/'/\\'/|g;. s|
|00003ed0| 2f 28 2e 2a 29 2f 27 24 | 31 27 2f 20 75 6e 6c 65 |/(.*)/'$|1'/ unle|
|00003ee0| 73 73 20 2f 5e 2d 3f 5b | 5c 64 2e 5d 2b 24 2f 3b |ss /^-?[|\d.]+$/;|
|00003ef0| 0d 7d 0d 0d 69 66 20 28 | 2d 66 20 24 72 63 66 69 |.}..if (|-f $rcfi|
|00003f00| 6c 65 29 20 7b 0d 20 20 | 20 20 64 6f 20 27 3a 24 |le) {. | do ':$|
|00003f10| 72 63 66 69 6c 65 27 3b | 0d 7d 0d 65 6c 73 69 66 |rcfile';|.}.elsif|
|00003f20| 20 28 2d 66 20 22 24 45 | 4e 56 7b 27 4d 50 57 27 | (-f "$E|NV{'MPW'|
|00003f30| 7d 3a 24 72 63 66 69 6c | 65 22 29 20 7b 0d 20 20 |}:$rcfil|e") {. |
|00003f40| 20 20 64 6f 20 22 24 45 | 4e 56 7b 27 4d 50 57 27 | do "$E|NV{'MPW'|
|00003f50| 7d 3a 24 72 63 66 69 6c | 65 22 3b 0d 7d 0d 65 6c |}:$rcfil|e";.}.el|
|00003f60| 73 69 66 20 28 2d 66 20 | 22 24 45 4e 56 7b 27 48 |sif (-f |"$ENV{'H|
|00003f70| 4f 4d 45 27 7d 3a 24 72 | 63 66 69 6c 65 22 29 20 |OME'}:$r|cfile") |
|00003f80| 7b 0d 20 20 20 20 64 6f | 20 22 24 45 4e 56 7b 27 |{. do| "$ENV{'|
|00003f90| 48 4f 4d 45 27 7d 3a 24 | 72 63 66 69 6c 65 22 3b |HOME'}:$|rcfile";|
|00003fa0| 0d 7d 0d 0d 31 3b 0d 00 | 00 00 00 00 00 00 00 00 |.}..1;..|........|
|00003fb0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00003fc0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00003fd0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00003fe0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00003ff0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00004000| 00 00 01 00 00 00 01 6e | 00 00 00 6e 00 00 00 3e |.......n|...n...>|
|00004010| 27 33 21 2e 35 31 06 0c | 23 20 20 66 0b 2f 2a 2a |'3!.51..|# f./**|
|00004020| 23 34 6a 8e 03 34 27 28 | 25 2f 35 33 04 32 27 28 |#4j..4'(|%/53.2'(|
|00004030| 09 70 65 72 6c 64 62 2e | 70 6c 02 00 00 00 54 45 |.perldb.|pl....TE|
|00004040| 58 54 4d 50 53 20 01 00 | 01 38 00 00 00 00 00 00 |XTMPS ..|.8......|
|00004050| 00 00 54 45 58 54 4d 50 | 53 20 01 00 01 38 00 00 |..TEXTMP|S ...8..|
|00004060| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00004070| 00 00 a8 ee 29 01 00 00 | 3f 27 00 00 01 ac 34 68 |....)...|?'....4h|
|00004080| 00 49 00 7e 2b 01 7e 74 | 2c 02 7f 7e 71 66 2d ab |.I.~+.~t|,..~qf-.|
|00004090| 04 34 33 25 23 66 0e 29 | 34 34 33 05 32 23 30 23 |.43%#f.)|443.2#0#|
|000040a0| 66 05 27 36 36 35 31 06 | 0a 27 34 34 3f 66 0d 23 |f.'6651.|.'44?f.#|
|000040b0| 28 3f 29 28 37 f0 2e 2f | 01 34 68 4b 0d 4d 0a 2f |(?)(7../|.4hK.M./|
|000040c0| 35 27 66 02 23 35 2d 32 | 29 36 66 0b 27 28 27 21 |5'f.#5-2|)6f.'('!|
|000040d0| 23 34 66 77 7f 7e 77 2c | 02 7f 7e 75 66 2d ea 35 |#4fw.~w,|..~uf-.5|
|000040e0| 33 01 2b 2f 24 31 01 00 | 34 35 05 2d 66 0a 33 22 |3.+/$1..|45.-f.3"|
|000040f0| 29 2a 36 2e 66 35 03 22 | 66 04 2f 2a 2a 3a 01 32 |)*6.f5."|f./**:.2|
|00004100| 00 00 00 48 00 09 4d 6f | 6e 61 63 6f 00 29 74 65 |...H..Mo|naco.)te|
|00004110| 00 00 00 30 00 02 56 6c | 80 0a 80 0a 80 0a 7f f5 |...0..Vl|........|
|00004120| 00 9f 00 14 00 9f 00 06 | 00 03 00 8c 00 14 01 dd |........|........|
|00004130| 02 3d 00 8c 00 14 01 dd | 02 3d a8 ee 29 04 00 00 |.=......|.=..)...|
|00004140| 0a 6d 00 00 0a 6d 00 00 | 20 97 01 00 00 00 00 1e |.m...m..| .......|
|00004150| 00 8c 00 14 01 dd 02 3d | 00 8c 00 14 01 dd 02 3d |.......=|.......=|
|00004160| 00 00 20 97 00 00 00 00 | 00 00 00 00 00 00 00 00 |.. .....|........|
|00004170| 01 00 00 00 01 6e 00 00 | 00 6e 00 00 00 3e 00 3b |.....n..|.n...>.;|
|00004180| f9 30 12 5e 00 00 00 1c | 00 3e 00 00 4d 50 53 52 |.0.^....|.>..MPSR|
|00004190| 00 01 00 0a 03 ed ff ff | 00 00 00 00 00 00 00 00 |........|........|
|000041a0| 03 f0 ff ff 00 00 00 4c | 00 3e 4f 18 00 00 00 00 |.......L|.>O.....|
|000041b0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000041c0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000041d0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000041e0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000041f0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
+--------+-------------------------+-------------------------+--------+--------+